diff options
Diffstat (limited to 'tests/render')
| -rw-r--r-- | tests/render/cross-compile0.hlsl | 21 | ||||
| -rw-r--r-- | tests/render/imported-parameters.hlsl | 28 | ||||
| -rw-r--r-- | tests/render/unused-discard.hlsl | 28 |
3 files changed, 71 insertions, 6 deletions
diff --git a/tests/render/cross-compile0.hlsl b/tests/render/cross-compile0.hlsl index 861336b1c..889d3ec15 100644 --- a/tests/render/cross-compile0.hlsl +++ b/tests/render/cross-compile0.hlsl @@ -6,12 +6,11 @@ // but the two will share a dependency on a file of // pure Spire code that provides the actual shading logic. +#if defined(__HLSL__) // Pull in Spire code depdendency using extended syntax: __import cross_compile0; -#if defined(__HLSL__) - cbuffer Uniforms { float4x4 modelViewProjection; @@ -89,6 +88,24 @@ FragmentStageOutput fragmentMain(FragmentStageInput input) #version 420 +float saturate(float x) +{ + return clamp(x, float(0), float(1)); +} + +vec3 transformColor(vec3 color) +{ + vec3 result; + + result.x = sin(20.0 * (color.x + color.y)); + result.y = saturate(cos(color.z * 30.0)); + result.z = sin(color.x * color.y * color.z * 100.0); + + result = 0.5 * (result + 1); + + return result; +} + uniform Uniforms { mat4x4 modelViewProjection; diff --git a/tests/render/imported-parameters.hlsl b/tests/render/imported-parameters.hlsl index 99216728e..faffeaf24 100644 --- a/tests/render/imported-parameters.hlsl +++ b/tests/render/imported-parameters.hlsl @@ -4,11 +4,11 @@ // correctly handle cases where top-level shader // parameters are declared in an `import`ed file. +#if defined(__HLSL__) + // Pull in Spire code depdendency using extended syntax: __import imported_parameters; -#if defined(__HLSL__) - struct AssembledVertex { float3 position; @@ -81,6 +81,30 @@ FragmentStageOutput fragmentMain(FragmentStageInput input) #version 420 +layout(binding = 0) +uniform Uniforms +{ + mat4x4 modelViewProjection; +}; + +float saturate(float x) +{ + return clamp(x, float(0), float(1)); +} + +vec3 transformColor(vec3 color) +{ + vec3 result; + + result.x = sin(20.0 * (color.x + color.y)); + result.y = saturate(cos(color.z * 30.0)); + result.z = sin(color.x * color.y * color.z * 100.0); + + result = 0.5 * (result + 1); + + return result; +} + #define ASSEMBLED_VERTEX(QUAL) \ /* */ diff --git a/tests/render/unused-discard.hlsl b/tests/render/unused-discard.hlsl index dad2f78e3..a47405f56 100644 --- a/tests/render/unused-discard.hlsl +++ b/tests/render/unused-discard.hlsl @@ -7,11 +7,11 @@ // pure Spire code that provides the actual shading logic. +#if defined(__HLSL__) + // Pull in Spire code depdendency using extended syntax: __import unused_discard; -#if defined(__HLSL__) - cbuffer Uniforms { float4x4 modelViewProjection; @@ -91,6 +91,24 @@ FragmentStageOutput fragmentMain(FragmentStageInput input) #version 420 +float saturate(float x) +{ + return clamp(x, float(0), float(1)); +} + +vec3 transformColor(vec3 color) +{ + vec3 result; + + result.x = sin(20.0 * (color.x + color.y)); + result.y = saturate(cos(color.z * 30.0)); + result.z = sin(color.x * color.y * color.z * 100.0); + + result = 0.5 * (result + 1); + + return result; +} + uniform Uniforms { mat4x4 modelViewProjection; @@ -129,6 +147,12 @@ void main() #ifdef __GLSL_FRAGMENT__ +void doConditionalDiscard(vec3 color) +{ + if(color.x < 0.5) + discard; +} + V2F(in) layout(location = 0) |
