[PATCH vkd3d 00/11] vkd3d-shader: Fix patch constant handling in hull shaders.
Philip Rebohle
philip.rebohle at tu-dortmund.de
Fri Oct 18 10:11:37 CDT 2019
Hi,
unfortunately that is currently the case, yes, since some descriptors
are left completely undefined. On RADV you can work around the system
hang by setting RADV_DEBUG=zerovram, however you will see rendering
artifacts.
- Philip
Am 18.10.19 um 15:59 schrieb Conor McCarthy:
> Hi Philip,
>
> Is the descriptor update issue expected to crash the game? Using these
> patches and tessellation I get a hard crash requiring reboot at the
> start of benchmark scene 2. Mesa 19.2.1 and AMD RX 580.
>
> On Thu, Oct 17, 2019 at 5:57 AM Philip Rebohle
> <philip.rebohle at tu-dortmund.de <mailto:philip.rebohle at tu-dortmund.de>>
> wrote:
>
>
> This series mainly changes the way patch constant outputs are generated
> in hull shaders to always use a private array variable. This is done to
> fix several issues in the current imlementation, and to avoid excessive
> complexity in dealing with patch constants which stem from DXBC's
> design:
>
> 1) Tessellation factors and regular patch constants share the same
> register space in DXBC and can both be dynamically or statically
> indexed. The current implementation only works correctly in case
> tessellation factors do not share registers with regular outputs,
> and does not support all indexing patterns, leading to invalid
> code being generated in some cases.
>
> 2) Join phases can read patch constants written by a fork phase,
> also with dynamic indexing. However, the index ranges used by
> the join phase are not known at the time the fork phase is
> compiled.
>
> With these changes, tessellation shaders work correctly in Shadow of
> the Tomb Raider, which previously contained invalid SPIR-V and would
> crash the game if enabled.
>
> Note that enabling the tessellation option in the game triggers a
> separate issue related to descriptor updates, which will have to
> be addressed separately.
>
>
More information about the wine-devel
mailing list