diff options
author | Nikita Fediuchin <cfnptr@gmail.com> | 2021-12-20 23:58:21 +0300 |
---|---|---|
committer | Nikita Fediuchin <cfnptr@gmail.com> | 2021-12-20 23:58:21 +0300 |
commit | 2acf0e73ddfadcd16c5ab1224671f7920c7c6a95 (patch) | |
tree | 3545190b27c0d2aa761995a5ac83aae4cc5db948 /reference/opt/shaders-msl | |
parent | a66984072bdb4517cc6fa9eba0ac4f7fb00cd982 (diff) |
Fix gl_TessCoord arguments presence. Update reference shaders.
* Added check for "gl_TessCoord" presence in the entry point arguments.
* Updated reference tessellation evaluation shaders.
Diffstat (limited to 'reference/opt/shaders-msl')
5 files changed, 13 insertions, 8 deletions
diff --git a/reference/opt/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese b/reference/opt/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese index 99803754..2f2716eb 100644 --- a/reference/opt/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese +++ b/reference/opt/shaders-msl/asm/tese/unnamed-builtin-array.asm.tese @@ -55,8 +55,9 @@ struct main0_patchIn float2 gl_TessLevelInner [[attribute(1)]]; }; -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) +[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoordIn [[position_in_patch]]) { + float3 gl_TessCoord = float3(gl_TessCoordIn.x, gl_TessCoordIn.y, 0.0); main0_out out = {}; spvUnsafeArray<float, 2> gl_TessLevelInner = {}; spvUnsafeArray<float, 4> gl_TessLevelOuter = {}; diff --git a/reference/opt/shaders-msl/tese/input-array.tese b/reference/opt/shaders-msl/tese/input-array.tese index 97a83b4e..d1dec4bb 100644 --- a/reference/opt/shaders-msl/tese/input-array.tese +++ b/reference/opt/shaders-msl/tese/input-array.tese @@ -19,8 +19,9 @@ struct main0_patchIn patch_control_point<main0_in> gl_in; }; -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) +[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoordIn [[position_in_patch]]) { + float3 gl_TessCoord = float3(gl_TessCoordIn.x, gl_TessCoordIn.y, 0.0); main0_out out = {}; out.gl_Position = (patchIn.gl_in[0].Floats * gl_TessCoord.x) + (patchIn.gl_in[1].Floats2 * gl_TessCoord.y); return out; diff --git a/reference/opt/shaders-msl/tese/quad.domain.tese b/reference/opt/shaders-msl/tese/quad.domain.tese index 9dadebc4..fe2e9ae4 100644 --- a/reference/opt/shaders-msl/tese/quad.domain.tese +++ b/reference/opt/shaders-msl/tese/quad.domain.tese @@ -55,8 +55,9 @@ struct main0_patchIn float2 gl_TessLevelInner [[attribute(1)]]; }; -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) +[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoordIn [[position_in_patch]]) { + float3 gl_TessCoord = float3(gl_TessCoordIn.x, gl_TessCoordIn.y, 0.0); main0_out out = {}; spvUnsafeArray<float, 2> gl_TessLevelInner = {}; spvUnsafeArray<float, 4> gl_TessLevelOuter = {}; diff --git a/reference/opt/shaders-msl/tese/quad.tese b/reference/opt/shaders-msl/tese/quad.tese index 99803754..2f2716eb 100644 --- a/reference/opt/shaders-msl/tese/quad.tese +++ b/reference/opt/shaders-msl/tese/quad.tese @@ -55,8 +55,9 @@ struct main0_patchIn float2 gl_TessLevelInner [[attribute(1)]]; }; -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoord [[position_in_patch]]) +[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], float2 gl_TessCoordIn [[position_in_patch]]) { + float3 gl_TessCoord = float3(gl_TessCoordIn.x, gl_TessCoordIn.y, 0.0); main0_out out = {}; spvUnsafeArray<float, 2> gl_TessLevelInner = {}; spvUnsafeArray<float, 4> gl_TessLevelOuter = {}; diff --git a/reference/opt/shaders-msl/tese/water_tess.tese b/reference/opt/shaders-msl/tese/water_tess.tese index df539ebb..1a84d01f 100644 --- a/reference/opt/shaders-msl/tese/water_tess.tese +++ b/reference/opt/shaders-msl/tese/water_tess.tese @@ -26,12 +26,13 @@ struct main0_patchIn float4 vPatchLods [[attribute(1)]]; }; -[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant UBO& _31 [[buffer(0)]], texture2d<float> uHeightmapDisplacement [[texture(0)]], sampler uHeightmapDisplacementSmplr [[sampler(0)]], float2 gl_TessCoord [[position_in_patch]]) +[[ patch(quad, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant UBO& _31 [[buffer(0)]], texture2d<float> uHeightmapDisplacement [[texture(0)]], sampler uHeightmapDisplacementSmplr [[sampler(0)]], float2 gl_TessCoordIn [[position_in_patch]]) { + float3 gl_TessCoord = float3(gl_TessCoordIn.x, gl_TessCoordIn.y, 0.0); main0_out out = {}; - float2 _202 = patchIn.vOutPatchPosBase + (float3(gl_TessCoord, 0).xy * _31.uPatchSize); - float2 _216 = mix(patchIn.vPatchLods.yx, patchIn.vPatchLods.zw, float2(float3(gl_TessCoord, 0).x)); - float _223 = mix(_216.x, _216.y, float3(gl_TessCoord, 0).y); + float2 _202 = patchIn.vOutPatchPosBase + (gl_TessCoord.xy * _31.uPatchSize); + float2 _216 = mix(patchIn.vPatchLods.yx, patchIn.vPatchLods.zw, float2(gl_TessCoord.x)); + float _223 = mix(_216.x, _216.y, gl_TessCoord.y); float _225 = floor(_223); float2 _125 = _202 * _31.uInvHeightmapSize; float2 _141 = _31.uInvHeightmapSize * exp2(_225); |