summaryrefslogtreecommitdiff
path: root/tests/render
diff options
context:
space:
mode:
Diffstat (limited to 'tests/render')
-rw-r--r--tests/render/cross-compile0.hlsl21
-rw-r--r--tests/render/imported-parameters.hlsl28
-rw-r--r--tests/render/unused-discard.hlsl28
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)