# Terrain tesselation and dynamic shadows

**URL:** <https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242>\
**Category:** Rendering\
**Tags:** tesselation, Shadows, dynamic-shadows, unreal-engine, Landscape, bug-report, question\
**Created:** [March 21, 2016, 2:38pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242 "2016-03-21T14:38:55Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [March 21, 2016, 2:38pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/1 "2016-03-21T14:38:55Z")

</div>

While creating a terrain material I’ve ran into a performance issues with tessellation,namely with shadowcasting.

I am using quite large landscape and one dynamic light with far shadow cascade and having tessellation enabled on terrain material cripples performance.  
GPU profiler show roughly 5.0ms increased time for shadowed lights, ShadowDepthsFromOpaque. And that is only by just enabling tesselation in material parameters, having tessellation multiplier at 0.  
I can safely say that I did not experience this issue around UE 4.6 or so.

For the sake of consistency, I’ve reproduced the issue in a blank project.

- 
  1. Create a blank project.

- 
  1. Create Default level.

- 
  1. Change directional light to  
movable.

- 
  1. Create a new terrain, 505x505 or  
any larger size.

- 
  1. Create a new material.

- 
  1. Plug a simple Const Vec3 into base  
color.

- 
  1. Assign this material to the  
landscape.

- 
  1. Check performance.

- 
  1. Enable flat tesselation in  
material settings.

- 10 Observe unjustified performance  
drop.

Please note, that it happens only with landscape. If I replace terrain with a mesh of comparable density, I get no shadowcasting performance drop untill i start cranking tessellation multiplier way up.

I’m linking 4 somewhat similar posts I’ve found.  
[Post1](https://answers.unrealengine.com/questions/155820/shadow-depth-from-opaque-wholescene-split.html)  
[Post2](https://answers.unrealengine.com/questions/254301/updated-from-47-to-481-massive-performance-issues.html?sort=oldest)  
[Post3](https://answers.unrealengine.com/questions/359478/landscape-tesselation-performance.html)  
[Post4](https://answers.unrealengine.com/questions/163136/performance-regression-in-470-preview.html)

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_6e7b421a](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_6e7b421a](https://forums.unrealengine.com/u/anonymous_user_6e7b421a)\
**Post date:** [March 21, 2016, 3:53pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/2 "2016-03-21T15:53:55Z")

</div>

Hey Deathrey,

We are aware of the performance issues with tessellated landscapes and have a report in to improve this feature (UE-14253). I have increased the community interest and added a link to this post to the report. We appreciate you taking the time to investigate and provide additional posts where users are reporting a similar issue.

Let me know if you have further questions or need additional assistance.

Thank you,

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [August 17, 2016, 2:19pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/3 "2016-08-17T14:19:14Z")

</div>

Good day. Just noticed that UE-14253 has been marked as resolved in 4.13  
Up to 4.13 preview 2 the issue is still present.

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_6e7b421a](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_6e7b421a](https://forums.unrealengine.com/u/anonymous_user_6e7b421a)\
**Post date:** [August 17, 2016, 3:15pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/4 "2016-08-17T15:15:02Z")

</div>

I just ran some tests and cannot confirm what you are reporting. I followed your steps as well as made a more complex material and did not get any sort of drop in performance when enabling tessellation on landscapes. Below are the contents and results of my test in the 4.13 preview 2 release.

**Without Tessellation**

 ![103245-notessellation.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/d/d/1/dd17f5c7228b42933ceb7760f0ceb2725f053edd.jpeg)

Notice the frames per second.

**Landscape Material**

 ![103246-landscapematerial.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/8/a/0/8a080b3634eb517b1f123a97172e4849030d53d3.png)

Flat Tessellation enabled with displacement. Created parameters for material instance.

**With Tessellation**

 ![103248-withtessellation.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/c/6/2c6142c37957778657ca76f72d384664a8ea7214.jpeg)

This issue is fixed on my end. Let me know if you have further questions or need additional assistance.

Cheers,

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [August 17, 2016, 9:28pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/5 "2016-08-17T21:28:11Z")

</div>

Still able to consistently reproduce it in a clean project on 4.13 p2

- 
  1. Create new project, blueprints,  
3rd person template

- 
  1. Create new level, default preset

- 
  1. Turn off smooth fps in project  
settings

- 
  1. Make a terrain material, exactly  
as displayed on your screenshot

- 
  1. Set tessellation multiplier to  
zero

- 
  1. Compile material, and create its  
instance

- 
  1. Create a landscape, 505 resolution  
63 quads per section, 1 section per  
component

- 
  1. Assign above-mentioned material  
instance to the landscape

- 
  1. Create landscape layer data for  
two layers, weight-blended

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [August 17, 2016, 9:28pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/6 "2016-08-17T21:28:33Z")

</div>

Second part, due to character limit:

- 
  1. Paint landscape fully with first  
layer

- 
  1. Paint some spots with second  
layer

- 
  1. Select Light Source, change it to  
movable, set Far Shadow Cascade to 1

- 
  1. Play in standalone  
process.@1920x1080

- 
  1. During play mode while looking  
from various angles, take several  
readings from GPU profiler and note  
Scene/BasePass time and  
Scene/ShadowDepths. At this point,  
for me they are averaging at roughly  
**0.80ms** and **0.40ms** respectively. That is on GTX 770

- 
  1. Close play in standalone window

- 
  1. Open landscape material.

- 
  1. Enable flat tessellation, disable  
crack free and adaptive tessellation.

- 
  1. Recompile and save the material.

- 
  1. Play in standalone process

- 
  1. During play mode while looking  
from various angles, take several  
readings from GPU profiler and note  
Scene/BasePass time and  
Scene/ShadowDepths. At this step my  
average readings are **1.10ms** and  
**2.70ms** correspondingly.

- 
  1. Try roughly aligning the camera  
with Light Source’s direction(Sun is  
directly behind the camera). For me  
ShadowDepth is peaking 4ms here.  
Without actual tessellation load

- 
  1. If that is not convincing enough,  
expand the material to include  
distance-based tessellation, exactly  
as it is described [here](https://wiki.unrealengine.com/Distance_Based_DX11_Tesselation_-_Video), and  
check how tremendous is the  
performance hit, even with low values  
for distance and multiplier. For reference, you can cross-compare performance with a mesh plane, that has roughly 250k vertices. **There are no performance issues with a static mesh of comparable density.**

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_6e7b421a](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_6e7b421a](https://forums.unrealengine.com/u/anonymous_user_6e7b421a)\
**Post date:** [August 19, 2016, 2:56pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/7 "2016-08-19T14:56:37Z")

</div>

So I ran some more tests using your newly provided steps and am still not seeing the drop in performance. Silly question, but can you make sure you are on the preview 2 release? Could you also provide me with your ‘dxdiag’ so I can take a look at your system specifications.

I even increased the Tessellation to 4.0 and the displacement along VertexNormalWS to a multiplier of 25.0 and still did not see an unexpected drop in performance. Made sure ‘Crack Free Displacement’ and ‘Adaptive Tessellation’ were both turned off, took multiple screenshots using the ProfileGPU console command, and had no significant change in the ms.

I will say, your new steps are more complex than the original that got the issue to occur which means this could be part of the issue. If enabling flat tessellation on a landscape using a default set up while disabling ‘Crack free displacement’ and ‘Adaptive Tessellation’ does not reproduce the original performance drop issue, then it is determined as fixed.

Let me know if you have further questions or need additional assistance.

Cheers,

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [August 19, 2016, 3:33pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/8 "2016-08-19T15:33:01Z")

</div>

Good day again, Andrew. Thank you for your time investigating this.  
Your question is absolutely valid. Yep, I am on 4.13 preview 2, launcher version.[Dx Diag file as requested][1]

* * *

My screens(windowed standalone,1280@720):

* * *

**No Tessellation**

 ![](https://d3kjluh73b9h9o.cloudfront.net/original/3X/1/1/1193685e16fc5591f3ed63e8a5f303f89ea113ab.png)

**Flat tessellation, crack free and adaptive disabled, zero tess multiplier**

 ![](https://d3kjluh73b9h9o.cloudfront.net/original/3X/0/b/0b17c70f82e99da2c2dd1fe84bd2007c7eaa2cd0.png)

**Flat tessellation,crack free and adaptive disabled, 4 tess multiplier**

 ![](https://d3kjluh73b9h9o.cloudfront.net/original/3X/a/0/a083c0671b1c710c7addfdfc36b1fe2a7064714c.png)

* * *

Now a silly question from me. You are mentioning that you are not seeing performance drop when cranking up multiplier to 4. That sounds dead wrong to me. You should observe performance drop, and with 505 grid tessellated 4 times, this drop should be significant. And your two screenshots earlier from your post show a fps of 120. Please, rule out your FPS being capped by framerate limit or vsync.

* * *

I am quite positive that I am not the only one affected by this issue. It would be only to my entire joy finding out, that this issue is in my hardware/software, but whole team is being affected by that. Additionally, users from the forum thread do report the same. There is also another answer hub post on exactly this issue, the one with 50 votes on it.

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_6e7b421a](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_6e7b421a](https://forums.unrealengine.com/u/anonymous_user_6e7b421a)\
**Post date:** [August 19, 2016, 6:35pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/9 "2016-08-19T18:35:13Z")

</div>

Thanks for pointing out the framerate options as I did indeed overlook that setting. With that said, I ran some more tests and can see a performance hit, but nothing outside of what is expected. You can open the images in a new tab to view the original sizes in order to make the text legible.

**Tessellation Disabled**

 ![103617-tessellationoff.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/9/4/5/9453a63042b184fd7391051a1b65ac6407b87ef3.jpeg)

**Tessellation On**

 ![103620-tessellationon.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/e/9/3/e931bc2e768e1c4f9d7315b00455fa224c89f168.jpeg)

**Tessellation with High Values**

 ![103641-tessellationlargevalues.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/3/d/4/3d4e086e2b57e80d39346132e900c81020ffa148.jpeg)

So as you can see, I am getting a drop in performance in regards to my Scene rendering ShadowDepths, but it is nothing as significant as what you are reporting. The final image is expected as the tessellation multiplier of 4.0 is a pretty high number to tessellate a landscape. The shadow depths are going to increase the more I displace the landscape as well since it is pushing the vertices along VertexNormalWS and creating new shadows.

Let me know if you have further questions or need additional assistance.

Cheers,

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [August 19, 2016, 8:45pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/10 "2016-08-19T20:45:22Z")

</div>

Tessellation multiplier 4.0 with Displacement of 20.0 (3d shot) is totally expected.  
.

* * *

~~12% frame render time increase between No Tessellation and Flat Tessellation with zero multiplier(I understand it might lie within normal framerate fluctuations, thought i am never getting frame to frame difference that high, unless something actually changes on the screen) on your hardware(I assume that to be somewhat equivalent to GeForce 900 series) can easily transfer to ~30% on 700 series. around 30% is the minimum difference I was getting between enabled and disabled tessellation. I would really expect virtually no performance difference here.

* * *

I see shadows on your shots, thus the camera is not oriented to have light source behind the camera. The reason, why I am specifically pointing out light orientation relative to camera in step 21, is that number of landscape components rendered, when facing away from directional light source is maximal, and minimal, when looking facing the light. The issue manifests itself much more clearly, when facing away(components behind the camera are still being rendered into the shadow map). In this case my total frame render time increase is peaking up to 90% increase between no tessellation and flat tessellation with zero multiplier.

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [August 20, 2016, 11:31am UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/11 "2016-08-20T11:31:08Z")

</div>

Additionally, as soon as I increase landscape size beyond 505, things go much much worse. Shots for 4k landscape:

* * *

No tessellation:

 ![](https://d3kjluh73b9h9o.cloudfront.net/original/3X/8/5/856d6f924a2f6bb0960606f1949d206b388bbad5.png)

* * *

Flat tessellation, zero multiplier

 ![](https://d3kjluh73b9h9o.cloudfront.net/original/3X/e/9/e998a22ed205206a2997cc9d769ae2525402769b.png)

---

<div class="post-metadata">

**Author:** ![Maximum-Dev](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Maximum-Dev](https://forums.unrealengine.com/u/Maximum-Dev)\
**Post date:** [August 20, 2016, 4:58pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/12 "2016-08-20T16:58:27Z")

</div>

Epic,

Please have a look at the OP here as well.

> **[Landscape Tessellation Issue](https://forums.unrealengine.com/showthread.php?105329-Landscape-Tessellation-Issue)**
>
> Hello, I was going through my entire material setup to pin point what is really making my level lose so much FPS. I am now surprised to see this. I have put this simple setup below to demonstrate the issue. Created new material and applied to...

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_6e7b421a](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_6e7b421a](https://forums.unrealengine.com/u/anonymous_user_6e7b421a)\
**Post date:** [August 22, 2016, 3:46pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/13 "2016-08-22T15:46:08Z")

</div>

Okay so I looped in some additional devs after completing another round of tests where I was unable to reproduce the same drop in performance you are reporting. In regards to tessellation simply being enabled and using 0.0 as their values, I was given a more technical explanation as to why it is unrealistic to expect no performance impact.

There will be some non-zero cost to have tessellation enabled regardless of the tesselation factor, because with tessellation enabled the topology format is D3D11\_PRIMITIVE\_TOPOLOGY\_12\_CONTROL\_POINT\_PATCHLIST rather than D3D11\_PRIMITIVE\_TOPOLOGY\_TRIANGLELIST and the adjacency data is supplied to the domain shader, which consumes more memory bandwidth. The domain shader also needs to run for each set of control points, even if it returns 0 or something that evaluates to 0.

With that being said, I ran your tests again and still did not get the same drop in performance. Would you be able to provide me with the test project you are using so I can simply open the project and confirm what you are reporting?

Thank you,

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [August 22, 2016, 9:16pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/14 "2016-08-22T21:16:23Z")

</div>

Well, when I mentioned “virtually no performance difference”, I sort of accounted for that. There is an overhead, but by all means it can’t be held responsible for doubled **frame** render time on a heightfield as simple as 255K verts.

* * *

[Link to a project](https://drive.google.com/file/d/0B7TOrrSGBr6TOHUyTjR0VzAzSjg/view?usp=sharing), hope it can clear something up.

My thanks.

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_6e7b421a](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_6e7b421a](https://forums.unrealengine.com/u/anonymous_user_6e7b421a)\
**Post date:** [August 23, 2016, 3:16pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/15 "2016-08-23T15:16:58Z")

</div>

Thanks for the test project. I was able to confirm what you are reporting and have gone ahead and entered a bug report for the issue. You can track the issue following the link below on our new Public Issues Tracker.

**[UE-35097](https://issues.unrealengine.com/issue/UE-35097)**

Once the issue has been addressed by our engineers, the fix will be added to the release notes for fixed issues within an upcoming full engine or hotfix release.

Let me know if you have further questions or need additional assistance.

Cheers,

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [August 23, 2016, 5:04pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/16 "2016-08-23T17:04:14Z")

</div>

Glad that you were able to reproduce it finally. Just have to say that I don’t state that the issue is view angle dependent between the directional light source vector and the player’s view angle, like it is stated in the ticket. That is number of landscape components required to be rendered depends on that. It is not part of an issue and was referenced here to better highlight performance difference.

---

<div class="post-metadata">

**Author:** ![Maximum-Dev](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Maximum-Dev](https://forums.unrealengine.com/u/Maximum-Dev)\
**Post date:** [April 28, 2017, 12:50pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/17 "2017-04-28T12:50:09Z")

</div>

So it’s been 8 months. Did this bug report fall off the table?

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_6e7b421a](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_6e7b421a](https://forums.unrealengine.com/u/anonymous_user_6e7b421a)\
**Post date:** [April 28, 2017, 1:58pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/18 "2017-04-28T13:58:53Z")

</div>

No, it is still on the horizon to be fixed. As you can see it is marked as backlogged which means it does not have a high priority at the moment.

---

<div class="post-metadata">

**Author:** ![Maximum-Dev](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Maximum-Dev](https://forums.unrealengine.com/u/Maximum-Dev)\
**Post date:** [May 10, 2017, 4:44pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/19 "2017-05-10T16:44:06Z")

</div>

Alright thanks. Can you please update the Affect Versions to show 4.15.1 too?  
And on a side note, Andrew, can you help us out a little? I know it’s not a priority for Epic’s internal projects but we’ve all been waiting for a very long time for this fix and it’s crucial for a large number of projects, what should we do so the engineers take a look at this?

@Deathrey, It does seem view angle has some influence here too.

Looking towards directional light:

[http://uupload.ir/files/6p0n\_11.jpg](http://uupload.ir/files/6p0n_11.jpg)

Looking behind:

[http://uupload.ir/files/ccj5\_22.jpg](http://uupload.ir/files/ccj5_22.jpg)

---

<div class="post-metadata">

**Author:** ![Deathrey](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Deathrey](https://forums.unrealengine.com/u/Deathrey)\
**Post date:** [May 10, 2017, 10:44pm UTC](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242/20 "2017-05-10T22:44:43Z")

</div>

Yeah, increased cost when looking against the light is expected, since more landscape components are in shadow frustum.

Earlier in this thread mentioned 12 control point vertex data being responsible for increased baseline cost. This is not the case at all, because for flat tessellation without crack free displacement 3 point patch data is used, but ugly baseline cost issue still persists. The issue should be somewhere around vertex factory-\>hull shader(something gets interpolated more times than needed? At first glance HStoDS struct looks a bit strange too.)

In addition to that, for better tessellation performance there should be an option to allow you to selectively render shadow depth with tess disabled for each cascade separately. In typical usage scenarios you are extremely unlikely to still have tessellation beyond 1st/2nd cascade. In theory 4.13 change not to render tess past LOD0 should have dealt with it, but on practice LOD0 is commonly present in all cascades, making that change arguably useless for dynamic shadows.

[Next page](https://forums.unrealengine.com/t/terrain-tesselation-and-dynamic-shadows/351242.md?page=2)
