Path: blob/main/glslc/test/option_fresource_set_binding.py
1560 views
# Copyright 2017 The Shaderc Authors. All rights reserved.1#2# Licensed under the Apache License, Version 2.0 (the "License");3# you may not use this file except in compliance with the License.4# You may obtain a copy of the License at5#6# http://www.apache.org/licenses/LICENSE-2.07#8# Unless required by applicable law or agreed to in writing, software9# distributed under the License is distributed on an "AS IS" BASIS,10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.11# See the License for the specific language governing permissions and12# limitations under the License.1314import expect15from glslc_test_framework import inside_glslc_testsuite16from placeholder import FileShader1718# An HLSL shader with uniforms without explicit bindings.19HLSL_SHADER = """20Buffer<float4> t4 : register(t4);21Buffer<float4> t5 : register(t5);2223float4 main() : SV_Target0 {24return float4(t4.Load(0) + t5.Load(1));25}26"""272829NEED_THREE_ARGS_ERR = "error: Option -fresource-set-binding requires at least 3 arguments"3031@inside_glslc_testsuite('OptionFRegisterSetBinding')32class FRegisterSetBindingForFragRespected(expect.ValidAssemblyFileWithSubstr):33"""Tests -fresource-set-binding on specific shader two textures"""3435shader = FileShader(HLSL_SHADER, '.frag')36glslc_args = ['-S', '-x', 'hlsl', shader,37'-fresource-set-binding', 'frag',38't4', '9', '16',39't5', '17', '18']40expected_assembly_substr = """OpDecorate %t4 DescriptorSet 941OpDecorate %t4 Binding 1642OpDecorate %t5 DescriptorSet 1743OpDecorate %t5 Binding 18"""444546@inside_glslc_testsuite('OptionFRegisterSetBinding')47class FRegisterSetBindingForFragRespectedJustOneTriple(expect.ValidAssemblyFileWithSubstr):48"""Tests -fresource-set-binding on specific shader just one texture specified."""4950shader = FileShader(HLSL_SHADER, '.frag')51glslc_args = ['-S', '-x', 'hlsl', shader,52'-fresource-set-binding', 'frag',53't4', '9', '16']54expected_assembly_substr = """OpDecorate %t4 DescriptorSet 955OpDecorate %t4 Binding 1656OpDecorate %t5 DescriptorSet 057OpDecorate %t5 Binding 5"""585960@inside_glslc_testsuite('OptionFRegisterSetBinding')61class FRegisterSetBindingForWrongStageIgnored(expect.ValidAssemblyFileWithSubstr):62"""Tests -fresource-set-binding on wrong shader ignored"""6364shader = FileShader(HLSL_SHADER, '.frag')65glslc_args = ['-S', '-x', 'hlsl', shader,66'-fresource-set-binding', 'vert',67't4', '9', '16',68't5', '17', '18']69expected_assembly_substr = """OpDecorate %t4 DescriptorSet 070OpDecorate %t4 Binding 471OpDecorate %t5 DescriptorSet 072OpDecorate %t5 Binding 5"""737475@inside_glslc_testsuite('OptionFRegisterSetBinding')76class FRegisterSetBindingForAllRespected(expect.ValidAssemblyFileWithSubstr):77"""Tests -fresource-set-binding on all stages respected"""7879shader = FileShader(HLSL_SHADER, '.frag')80glslc_args = ['-S', '-x', 'hlsl', shader,81'-fresource-set-binding',82't4', '9', '16',83't5', '17', '18']84expected_assembly_substr = """OpDecorate %t4 DescriptorSet 985OpDecorate %t4 Binding 1686OpDecorate %t5 DescriptorSet 1787OpDecorate %t5 Binding 18"""888990@inside_glslc_testsuite('OptionFRegisterSetBinding')91class FRegisterSetBindingTooFewArgs(expect.ErrorMessageSubstr):92"""Tests -fresource-set-binding with too few arguments"""9394shader = FileShader(HLSL_SHADER, '.frag')95glslc_args = ['-S', '-x', 'hlsl', shader,96'-fresource-set-binding', 'frag',97't4', '9']98expected_error_substr = NEED_THREE_ARGS_ERR99100101@inside_glslc_testsuite('OptionFRegisterSetBinding')102class FRegisterSetBindingInvalidSetNumber(expect.ErrorMessageSubstr):103"""Tests -fresource-set-binding with inavlid set number"""104105shader = FileShader(HLSL_SHADER, '.frag')106glslc_args = ['-S', '-x', 'hlsl', shader,107'-fresource-set-binding', 'frag',108't4', '-9', '16']109expected_error_substr = NEED_THREE_ARGS_ERR110111112@inside_glslc_testsuite('OptionFRegisterSetBinding')113class FRegisterSetBindingInvalidBindingNumber(expect.ErrorMessageSubstr):114"""Tests -fresource-set-binding with inavlid binding number"""115116shader = FileShader(HLSL_SHADER, '.frag')117glslc_args = ['-S', '-x', 'hlsl', shader,118'-fresource-set-binding', 'frag',119't4', '9', '-16']120expected_error_substr = NEED_THREE_ARGS_ERR121122123