diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2018-02-02 08:49:04 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-02-02 08:49:04 -0800 |
| commit | 0360f81b9741ece65768a65731bd23455a3b7a96 (patch) | |
| tree | eab15cf6737cf091bf94d073e82c7b233f958e57 /tests/render | |
| parent | b034398ab12d3cc3a5fc04174688cb707404791d (diff) | |
Remove support for the -no-checking flag (#392)
* Remove support for the -no-checking flag
Fixes #381
Fixes #383
Work on #382
- No longer expose flag through API (`SLANG_COMPILE_FLAG_NO_CHECKING`) and command-line (`-no-checking`) options
- Remove all logic in `check.cpp` that was withholding diagnostics (including errors) when the no-checking mode was enabled
- Remove `HiddenImplicitCastExpr`, which was only created to support no-checking mode (it represented an implicit cast that our checking through was needed, but couldn't emit because it might be wrong)
- Remove logic for storing function bodies as raw token lists when checking is turned off. I'm leaving in the `UnparsedStmt` AST node in case we ever need/want to lazily parse and check function bodies down the line.
- Remove a few of the code-generation paths we had to contend with, but keep the comment about them in place.
- Remove GLSL-based tests that can't meaningfully work with the new approach.
- Fix other tests that used a GLSL baseline so that their GLSL compiles with `-pass-through glslang` instead of invoking `slang` with the `-no-checking` flag.
- Remove tests that were explicitly added to test the "rewriter + IR" path, since that is no longer supported.
There is more cleanup that can be done here, now that we know that AST-based rewrite and IR will never co-exist, but it is probably easier to deal with that as part of removing the AST-based rewrite path.
We've lost some test coverage here, but actually not too much if we consider that we are dropping GLSL input anyway.
* Fixup: test runner was mis-counting ignored tests
* Fixup: turn on dumping on test failure under Travis
* Fixup: enable extensions in Linux build of glslang
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) |
