Search Issue Tracker

By Design

Votes

0

Found in

5.5.0b10

Issue ID

848748

Regression

Yes

Domain shader receives incorrect coordinates from SV_POSITION on NVIDIA GPUs

Graphics - General

-

This is caused by the upgraded d3dcompiler.dll from the hololens branch. I'll email NVidia with details but so far this is a regression that breaks tessellation on NVidias. Assigning to Mircea.

Details: The new D3DCompiler produces different semantics for hull shader position outputs, and NVidia drivers do not seem to like that:

Old DLL:
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION 0 xyzw 0 NONE float xyzw

New DLL:
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float xyzw

Reproduction steps:
1. Open the "bug.zip" project
2. Open the "GrassShowcase" scene
-Observe that all of the grass is rendered at origin(0,0,0)

Note: The Domain shader can be found in "GrassTessellation.cginc" file at line 110

Note: Grass is rendered correctly on Intel and AMD GPUs

Reproduced on: 5.6.0a1, 5.5.0b10, 5.5.0b9
Not reproducible on: 5.5.0b8 , 5.5.0b7, 5.4.2f1
Regresion introduced in 5.5.0b9

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.