diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2021-03-03 11:45:39 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-03 11:45:39 -0800 |
| commit | 13ff0bd345990c0fdfb7b52ebd5339cddb04889e (patch) | |
| tree | ae3773d4f3475439a55603007b3908e31c6c31fb /examples/model-viewer/cube.obj | |
| parent | d6ae67160c33460bf952c9959077dc481a16eca2 (diff) | |
Add GLSL/SPIR-V support got GetAttributeAtVertex (#1733)
This change allows varying fragment shader inputs to be declared in a way that allows the `GetAttributeAtVertex` operation to compile to valid code for both D3D and GLSL/SPIR-V/Vulkan.
The key is that rather than just use ordinary `nointerpolation`-qualified inputs the code must declare these varying inputs with a new `pervertex` qualifier that marks them as *only* being usable with `GetAttributeAtVertex`. The `pervertex`-tagged inputs then translate to GLSL inputs using the `pervertexNV` qualifier
Note that this change does *not* include any enforcement of the requirements around how these qualifiers are used (and the compiler doesn't have enforcement for the existing operations like `EvaluateAttributeAtCentroid`). The underlying problem is that the inerpolation-mode qualifiers and explicit interpolation functions in HLSL constitute a kind of rate-qualified type system, but without any systematic rules. It seems wasteful to encode a bunch of ad hoc rules for this stuff as special cases in the compiler when the clear right answer is to implement a systematic approach to rates.
Diffstat (limited to 'examples/model-viewer/cube.obj')
0 files changed, 0 insertions, 0 deletions
