First Commit
This commit is contained in:
121
3rdparty/shaderc/glslc/test/option_fresource_set_binding.py
vendored
Normal file
121
3rdparty/shaderc/glslc/test/option_fresource_set_binding.py
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
# Copyright 2017 The Shaderc Authors. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import expect
|
||||
from glslc_test_framework import inside_glslc_testsuite
|
||||
from placeholder import FileShader
|
||||
|
||||
# An HLSL shader with uniforms without explicit bindings.
|
||||
HLSL_SHADER = """
|
||||
Buffer<float4> t4 : register(t4);
|
||||
Buffer<float4> t5 : register(t5);
|
||||
|
||||
float4 main() : SV_Target0 {
|
||||
return float4(t4.Load(0) + t5.Load(1));
|
||||
}
|
||||
"""
|
||||
|
||||
|
||||
NEED_THREE_ARGS_ERR = "error: Option -fresource-set-binding requires at least 3 arguments"
|
||||
|
||||
@inside_glslc_testsuite('OptionFRegisterSetBinding')
|
||||
class FRegisterSetBindingForFragRespected(expect.ValidAssemblyFileWithSubstr):
|
||||
"""Tests -fresource-set-binding on specific shader two textures"""
|
||||
|
||||
shader = FileShader(HLSL_SHADER, '.frag')
|
||||
glslc_args = ['-S', '-x', 'hlsl', shader,
|
||||
'-fresource-set-binding', 'frag',
|
||||
't4', '9', '16',
|
||||
't5', '17', '18']
|
||||
expected_assembly_substr = """OpDecorate %t4 DescriptorSet 9
|
||||
OpDecorate %t4 Binding 16
|
||||
OpDecorate %t5 DescriptorSet 17
|
||||
OpDecorate %t5 Binding 18"""
|
||||
|
||||
|
||||
@inside_glslc_testsuite('OptionFRegisterSetBinding')
|
||||
class FRegisterSetBindingForFragRespectedJustOneTriple(expect.ValidAssemblyFileWithSubstr):
|
||||
"""Tests -fresource-set-binding on specific shader just one texture specified."""
|
||||
|
||||
shader = FileShader(HLSL_SHADER, '.frag')
|
||||
glslc_args = ['-S', '-x', 'hlsl', shader,
|
||||
'-fresource-set-binding', 'frag',
|
||||
't4', '9', '16']
|
||||
expected_assembly_substr = """OpDecorate %t4 DescriptorSet 9
|
||||
OpDecorate %t4 Binding 16
|
||||
OpDecorate %t5 DescriptorSet 0
|
||||
OpDecorate %t5 Binding 5"""
|
||||
|
||||
|
||||
@inside_glslc_testsuite('OptionFRegisterSetBinding')
|
||||
class FRegisterSetBindingForWrongStageIgnored(expect.ValidAssemblyFileWithSubstr):
|
||||
"""Tests -fresource-set-binding on wrong shader ignored"""
|
||||
|
||||
shader = FileShader(HLSL_SHADER, '.frag')
|
||||
glslc_args = ['-S', '-x', 'hlsl', shader,
|
||||
'-fresource-set-binding', 'vert',
|
||||
't4', '9', '16',
|
||||
't5', '17', '18']
|
||||
expected_assembly_substr = """OpDecorate %t4 DescriptorSet 0
|
||||
OpDecorate %t4 Binding 4
|
||||
OpDecorate %t5 DescriptorSet 0
|
||||
OpDecorate %t5 Binding 5"""
|
||||
|
||||
|
||||
@inside_glslc_testsuite('OptionFRegisterSetBinding')
|
||||
class FRegisterSetBindingForAllRespected(expect.ValidAssemblyFileWithSubstr):
|
||||
"""Tests -fresource-set-binding on all stages respected"""
|
||||
|
||||
shader = FileShader(HLSL_SHADER, '.frag')
|
||||
glslc_args = ['-S', '-x', 'hlsl', shader,
|
||||
'-fresource-set-binding',
|
||||
't4', '9', '16',
|
||||
't5', '17', '18']
|
||||
expected_assembly_substr = """OpDecorate %t4 DescriptorSet 9
|
||||
OpDecorate %t4 Binding 16
|
||||
OpDecorate %t5 DescriptorSet 17
|
||||
OpDecorate %t5 Binding 18"""
|
||||
|
||||
|
||||
@inside_glslc_testsuite('OptionFRegisterSetBinding')
|
||||
class FRegisterSetBindingTooFewArgs(expect.ErrorMessageSubstr):
|
||||
"""Tests -fresource-set-binding with too few arguments"""
|
||||
|
||||
shader = FileShader(HLSL_SHADER, '.frag')
|
||||
glslc_args = ['-S', '-x', 'hlsl', shader,
|
||||
'-fresource-set-binding', 'frag',
|
||||
't4', '9']
|
||||
expected_error_substr = NEED_THREE_ARGS_ERR
|
||||
|
||||
|
||||
@inside_glslc_testsuite('OptionFRegisterSetBinding')
|
||||
class FRegisterSetBindingInvalidSetNumber(expect.ErrorMessageSubstr):
|
||||
"""Tests -fresource-set-binding with inavlid set number"""
|
||||
|
||||
shader = FileShader(HLSL_SHADER, '.frag')
|
||||
glslc_args = ['-S', '-x', 'hlsl', shader,
|
||||
'-fresource-set-binding', 'frag',
|
||||
't4', '-9', '16']
|
||||
expected_error_substr = NEED_THREE_ARGS_ERR
|
||||
|
||||
|
||||
@inside_glslc_testsuite('OptionFRegisterSetBinding')
|
||||
class FRegisterSetBindingInvalidBindingNumber(expect.ErrorMessageSubstr):
|
||||
"""Tests -fresource-set-binding with inavlid binding number"""
|
||||
|
||||
shader = FileShader(HLSL_SHADER, '.frag')
|
||||
glslc_args = ['-S', '-x', 'hlsl', shader,
|
||||
'-fresource-set-binding', 'frag',
|
||||
't4', '9', '-16']
|
||||
expected_error_substr = NEED_THREE_ARGS_ERR
|
||||
Reference in New Issue
Block a user