From: Ian Romanick <ian.d.roman...@intel.com> If the extension isn't enabled in the shader, the functions should not be availale. Yes, I botched the SSBO and shared variable parts in the initial implementation.
Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> --- .../imageAtomicAdd-float-image2D-fail.frag | 20 ++++++++++++++++++++ .../imageAtomicExchange-float-image2D-fail.frag | 20 ++++++++++++++++++++ .../compiler/shared-atomicAdd-float-fail.comp | 20 ++++++++++++++++++++ .../compiler/shared-atomicExchange-float-fail.comp | 20 ++++++++++++++++++++ .../compiler/ssbo-atomicAdd-float-fail.frag | 22 ++++++++++++++++++++++ .../compiler/ssbo-atomicExchange-float-fail.frag | 22 ++++++++++++++++++++++ 6 files changed, 124 insertions(+) create mode 100644 tests/spec/nv_shader_atomic_float/compiler/imageAtomicAdd-float-image2D-fail.frag create mode 100644 tests/spec/nv_shader_atomic_float/compiler/imageAtomicExchange-float-image2D-fail.frag create mode 100644 tests/spec/nv_shader_atomic_float/compiler/shared-atomicAdd-float-fail.comp create mode 100644 tests/spec/nv_shader_atomic_float/compiler/shared-atomicExchange-float-fail.comp create mode 100644 tests/spec/nv_shader_atomic_float/compiler/ssbo-atomicAdd-float-fail.frag create mode 100644 tests/spec/nv_shader_atomic_float/compiler/ssbo-atomicExchange-float-fail.frag diff --git a/tests/spec/nv_shader_atomic_float/compiler/imageAtomicAdd-float-image2D-fail.frag b/tests/spec/nv_shader_atomic_float/compiler/imageAtomicAdd-float-image2D-fail.frag new file mode 100644 index 000000000..720317280 --- /dev/null +++ b/tests/spec/nv_shader_atomic_float/compiler/imageAtomicAdd-float-image2D-fail.frag @@ -0,0 +1,20 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_NV_shader_atomic_float GL_ARB_shader_image_load_store +// [end config] +// +// The extension is supported by the implementation, but it is not enabled in +// the shader. This should fail to compile. + +#version 150 +#extension GL_ARB_shader_image_load_store: require + +layout(r32f) uniform image2D img; +uniform float v; +out vec4 color; + +void main() +{ + color = vec4(imageAtomicAdd(img, ivec2(gl_FragCoord.xy), v)); +} diff --git a/tests/spec/nv_shader_atomic_float/compiler/imageAtomicExchange-float-image2D-fail.frag b/tests/spec/nv_shader_atomic_float/compiler/imageAtomicExchange-float-image2D-fail.frag new file mode 100644 index 000000000..356a7518a --- /dev/null +++ b/tests/spec/nv_shader_atomic_float/compiler/imageAtomicExchange-float-image2D-fail.frag @@ -0,0 +1,20 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_NV_shader_atomic_float GL_ARB_shader_image_load_store +// [end config] +// +// The extension is supported by the implementation, but it is not enabled in +// the shader. This should fail to compile. + +#version 150 +#extension GL_ARB_shader_image_load_store: require + +layout(r32f) uniform image2D img; +uniform float v; +out vec4 color; + +void main() +{ + color = vec4(imageAtomicExchange(img, ivec2(gl_FragCoord.xy), v)); +} diff --git a/tests/spec/nv_shader_atomic_float/compiler/shared-atomicAdd-float-fail.comp b/tests/spec/nv_shader_atomic_float/compiler/shared-atomicAdd-float-fail.comp new file mode 100644 index 000000000..a0d5cda8a --- /dev/null +++ b/tests/spec/nv_shader_atomic_float/compiler/shared-atomicAdd-float-fail.comp @@ -0,0 +1,20 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_compute_shader GL_NV_shader_atomic_float +// [end config] +// +// The extension is supported by the implementation, but it is not enabled in +// the shader. This should fail to compile. + +#version 150 +#extension GL_ARB_compute_shader: require + +layout(local_size_x = 32) in; + +shared float a; + +void main() +{ + atomicAdd(a, 1.7); +} diff --git a/tests/spec/nv_shader_atomic_float/compiler/shared-atomicExchange-float-fail.comp b/tests/spec/nv_shader_atomic_float/compiler/shared-atomicExchange-float-fail.comp new file mode 100644 index 000000000..3ce370a7b --- /dev/null +++ b/tests/spec/nv_shader_atomic_float/compiler/shared-atomicExchange-float-fail.comp @@ -0,0 +1,20 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_compute_shader GL_NV_shader_atomic_float +// [end config] +// +// The extension is supported by the implementation, but it is not enabled in +// the shader. This should fail to compile. + +#version 150 +#extension GL_ARB_compute_shader: require + +layout(local_size_x = 32) in; + +shared float a; + +void main() +{ + atomicExchange(a, 1.7); +} diff --git a/tests/spec/nv_shader_atomic_float/compiler/ssbo-atomicAdd-float-fail.frag b/tests/spec/nv_shader_atomic_float/compiler/ssbo-atomicAdd-float-fail.frag new file mode 100644 index 000000000..6a7a6a5b0 --- /dev/null +++ b/tests/spec/nv_shader_atomic_float/compiler/ssbo-atomicAdd-float-fail.frag @@ -0,0 +1,22 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_shader_storage_buffer_object GL_NV_shader_atomic_float +// [end config] +// +// The extension is supported by the implementation, but it is not enabled in +// the shader. This should fail to compile. + +#version 150 +#extension GL_ARB_shader_storage_buffer_object: require + +buffer bufblock { + float a; +}; + +out vec4 color; + +void main() +{ + color = vec4(atomicAdd(a, 1.7)); +} diff --git a/tests/spec/nv_shader_atomic_float/compiler/ssbo-atomicExchange-float-fail.frag b/tests/spec/nv_shader_atomic_float/compiler/ssbo-atomicExchange-float-fail.frag new file mode 100644 index 000000000..a49a15961 --- /dev/null +++ b/tests/spec/nv_shader_atomic_float/compiler/ssbo-atomicExchange-float-fail.frag @@ -0,0 +1,22 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_shader_storage_buffer_object GL_NV_shader_atomic_float +// [end config] +// +// The extension is supported by the implementation, but it is not enabled in +// the shader. This should fail to compile. + +#version 150 +#extension GL_ARB_shader_storage_buffer_object: require + +buffer bufblock { + float a; +}; + +out vec4 color; + +void main() +{ + color = vec4(atomicExchange(a, 1.7)); +} -- 2.14.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit