Commit beb33691 by Shahbaz Youssefi Committed by Commit Bot

Vulkan: EXT_gpu_shader5: Fix textureGatherOffsets builtin

This function is the only builtin with arrays as parameter. A new constexpr constructor is added to TType to support this, and gen_builtin_symbols is changed to emit the correct type for offsets parameter of this function. Bug: angleproject:3569 Change-Id: I55af58b43f24cd605c622ee685b359535e11ef85 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1975431Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
parent 52dae168
{
"src/compiler/translator/ImmutableString_ESSL_autogen.cpp":
"04c99d881c37b835817eb56d2360b935",
"ddecd9cf66f0215a7948ac89cd1d3385",
"src/compiler/translator/ImmutableString_autogen.cpp":
"c48781801bc54a3c6d3c4dc8a9ac9f7b",
"9f2ee71527ac7f4ec6a03d5c53b804f0",
"src/compiler/translator/ParseContext_ESSL_autogen.h":
"082e0de86e1d4aa7ce38e8721f7e9e7a",
"src/compiler/translator/ParseContext_complete_autogen.h":
"2781c026f8561561963609f41dc3d19b",
"src/compiler/translator/SymbolTable_ESSL_autogen.cpp":
"50c55d27eeb01feb658d6603f0871dcd",
"afe64a7aaabec38d0f18cd97ff2636a2",
"src/compiler/translator/SymbolTable_autogen.cpp":
"a340694ac13857e2554b34e301e87acb",
"0472960960684ef6f11640fee05ed744",
"src/compiler/translator/SymbolTable_autogen.h":
"3ce7740b6ad93a86d198c3937b70c17e",
"src/compiler/translator/builtin_function_declarations.txt":
......@@ -18,13 +18,13 @@
"src/compiler/translator/builtin_variables.json":
"1b71075ff2644fd32b12bb53dce50062",
"src/compiler/translator/gen_builtin_symbols.py":
"f8b91bb0a1420164b322156bc224aaef",
"ef6fde209ca86ffb1752fc3a5b9d72d7",
"src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h":
"4bdd0602e77653ebed7182a5252482cd",
"9794433d4227bf48d3f992179aa39c5f",
"src/compiler/translator/tree_util/BuiltIn_complete_autogen.h":
"4e11b044148d46d32d3bea667b583ecd",
"037b26042f27c30f875a438e14d00f8b",
"src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp":
"c17f3f6e89c00c46c7f692ee85a54153",
"2ef94949a7d307a9637be33721963013",
"src/tests/compiler_tests/ImmutableString_test_autogen.cpp":
"67182194afadb4adb981fcf2db2126b2"
"bbadb3d43954e107a88b8af5a9585000"
}
\ No newline at end of file
......@@ -55,6 +55,36 @@ constexpr StaticMangledName BuildStaticMangledName(TBasicType basicType,
return name;
}
// Similar mangled name builder but for array types. Currently, only single-dimension arrays of
// single-digit size are necessary and supported.
static constexpr size_t kStaticArrayMangledNameLength = kStaticMangledNameLength + 2;
struct StaticArrayMangledName
{
char name[kStaticArrayMangledNameLength + 1] = {};
};
constexpr StaticArrayMangledName BuildStaticArrayMangledName(TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
unsigned char primarySize,
unsigned char secondarySize,
const unsigned int *arraySizes,
size_t numArraySizes)
{
StaticMangledName nonArrayName =
BuildStaticMangledName(basicType, precision, qualifier, primarySize, secondarySize);
StaticArrayMangledName arrayName = {};
static_assert(kStaticMangledNameLength == 3, "Static mangled name size is not 3");
arrayName.name[0] = nonArrayName.name[0];
arrayName.name[1] = nonArrayName.name[1];
arrayName.name[2] = nonArrayName.name[2];
arrayName.name[3] = 'x';
arrayName.name[4] = static_cast<char>('0' + arraySizes[0]);
arrayName.name[5] = '\0';
return arrayName;
}
// This "variable" contains the mangled names for every constexpr-generated TType.
// If kMangledNameInstance<B, P, Q, PS, SS> is used anywhere (specifally
// in instance, below), this is where the appropriate type will be stored.
......@@ -66,6 +96,23 @@ template <TBasicType basicType,
static constexpr StaticMangledName kMangledNameInstance =
BuildStaticMangledName(basicType, precision, qualifier, primarySize, secondarySize);
// Same as kMangledNameInstance, but for array types.
template <TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
unsigned char primarySize,
unsigned char secondarySize,
const unsigned int *arraySizes,
size_t numArraySizes>
static constexpr StaticArrayMangledName kMangledNameArrayInstance =
BuildStaticArrayMangledName(basicType,
precision,
qualifier,
primarySize,
secondarySize,
arraySizes,
numArraySizes);
//
// Generation and static allocation of TType values.
//
......@@ -88,8 +135,26 @@ static constexpr TType instance =
qualifier,
primarySize,
secondarySize,
TSpan<const unsigned int>(),
kMangledNameInstance<basicType, precision, qualifier, primarySize, secondarySize>.name);
// Same as instance, but for array types.
template <TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
unsigned char primarySize,
unsigned char secondarySize,
const unsigned int *arraySizes,
size_t numArraySizes>
static constexpr TType arrayInstance =
TType(basicType,
precision,
qualifier,
primarySize,
secondarySize,
TSpan<const unsigned int>(arraySizes, numArraySizes),
kMangledNameArrayInstance<basicType, precision, qualifier, primarySize, secondarySize, arraySizes, numArraySizes>.name);
} // namespace Helpers
//
......@@ -108,6 +173,23 @@ constexpr const TType *Get()
return &Helpers::instance<basicType, precision, qualifier, primarySize, secondarySize>;
}
template <TBasicType basicType,
TPrecision precision,
TQualifier qualifier,
unsigned char primarySize,
unsigned char secondarySize,
const unsigned int *arraySizes,
size_t numArraySizes>
constexpr const TType *GetArray()
{
static_assert(1 <= primarySize && primarySize <= 4, "primarySize out of bounds");
static_assert(1 <= secondarySize && secondarySize <= 4, "secondarySize out of bounds");
static_assert(numArraySizes == 1, "only single-dimension static types are supported");
static_assert(arraySizes[0] < 10, "only single-digit dimensions are supported in static types");
return &Helpers::arrayInstance<basicType, precision, qualifier, primarySize, secondarySize,
arraySizes, numArraySizes>;
}
//
// Overloads
//
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -130,7 +130,7 @@ TType::TType(TBasicType t, unsigned char ps, unsigned char ss)
{}
TType::TType(TBasicType t, TPrecision p, TQualifier q, unsigned char ps, unsigned char ss)
: TType(t, p, q, ps, ss, nullptr)
: TType(t, p, q, ps, ss, TSpan<const unsigned int>(), nullptr)
{}
TType::TType(const TPublicType &p)
......@@ -442,9 +442,8 @@ const char *TType::buildMangledName() const
{
char buf[20];
snprintf(buf, sizeof(buf), "%d", arraySize);
mangledName += '[';
mangledName += 'x';
mangledName += buf;
mangledName += ']';
}
// Copy string contents into a pool-allocated buffer, so we never need to call delete.
......@@ -630,12 +629,6 @@ void TType::makeArrays(const TSpan<const unsigned int> &sizes)
onArrayDimensionsChange(*mArraySizesStorage);
}
void TType::onArrayDimensionsChange(const TSpan<const unsigned int> &sizes)
{
mArraySizes = sizes;
invalidateMangledName();
}
void TType::setArraySize(size_t arrayDimension, unsigned int s)
{
ASSERT(isArray() && mArraySizesStorage != nullptr);
......@@ -691,11 +684,6 @@ void TType::realize()
getMangledName();
}
void TType::invalidateMangledName()
{
mMangledName = nullptr;
}
void TType::createSamplerSymbols(const ImmutableString &namePrefix,
const TString &apiNamePrefix,
TVector<const TVariable *> *outputSymbols,
......
......@@ -112,6 +112,7 @@ class TType
TQualifier q,
unsigned char ps,
unsigned char ss,
const TSpan<const unsigned int> arraySizes,
const char *mangledName)
: type(t),
precision(p),
......@@ -122,6 +123,7 @@ class TType
layoutQualifier(TLayoutQualifier::Create()),
primarySize(ps),
secondarySize(ss),
mArraySizes(arraySizes),
mArraySizesStorage(nullptr),
mInterfaceBlock(nullptr),
mStructure(nullptr),
......@@ -343,9 +345,13 @@ class TType
bool isSamplerVideoWEBGL() const { return type == EbtSamplerVideoWEBGL; }
private:
void invalidateMangledName();
constexpr void invalidateMangledName() { mMangledName = nullptr; }
const char *buildMangledName() const;
void onArrayDimensionsChange(const TSpan<const unsigned int> &sizes);
constexpr void onArrayDimensionsChange(const TSpan<const unsigned int> &sizes)
{
mArraySizes = sizes;
invalidateMangledName();
}
TBasicType type;
TPrecision precision;
......
......@@ -275,6 +275,8 @@ constexpr const ImmutableString _empty("");
namespace BuiltInVariable
{{
{type_array_sizes_declarations}
{variable_declarations}
{get_variable_definitions}
......@@ -821,12 +823,20 @@ class TType:
if 'qualifier' not in self.data:
self.data['qualifier'] = 'Global'
def has_array_size(self):
return 'arraySize' in self.data
def get_statictype_string(self):
template_type = 'StaticType::Get<Ebt{basic}, Ebp{precision}, Evq{qualifier}, {primarySize}, {secondarySize}>()'
if self.has_array_size():
template_type = 'StaticType::GetArray<Ebt{basic}, Ebp{precision}, Evq{qualifier}, {primarySize}, {secondarySize}, kArraySize{arraySize}, 1>()'
return template_type.format(**self.data)
def get_dynamic_type_string(self):
template_type = 'new TType(Ebt{basic}, Ebp{precision}, Evq{qualifier}, {primarySize}, {secondarySize})'
template_type = 'new TType(Ebt{basic}, Ebp{precision}, Evq{qualifier}, {primarySize}, {secondarySize}'
if self.has_array_size():
template_type += ', TVector<unsigned int>{{{arraySize}}}'
template_type += ')'
return template_type.format(**self.data)
def get_mangled_name(self):
......@@ -838,10 +848,14 @@ class TType:
else:
mangled_name += chr(ord('A') + size_key - 10)
mangled_name += get_basic_mangled_name(self.data['basic'])
if self.has_array_size():
mangled_name += 'x' + str(self.data['arraySize'])
return mangled_name
def get_human_readable_name(self):
name = self.data['basic']
if self.has_array_size():
name = str(self.data['arraySize']) + 'x' + name
name += str(self.data['primarySize'])
if self.data['secondarySize'] > 1:
name += 'x' + str(self.data['secondarySize'])
......@@ -928,8 +942,6 @@ class TType:
'v': 'Void'
}
# TODO(http://anglebug.com/3833): textureGatherOffsets in GLSL has an ivec2[4] parameter
# Need to parse, currently treating it as mat4x2
vec_re = re.compile(r'^([iudb]?)vec([234]?)((\[[234]\])?)$')
vec_match = vec_re.match(glsl_header_type)
if vec_match:
......@@ -941,8 +953,8 @@ class TType:
# vec with specific size
if vec_match.group(3) != '':
# vec array
type_obj['primarySize'] = int(vec_match.group(3)[1])
type_obj['secondarySize'] = int(vec_match.group(2))
type_obj['primarySize'] = int(vec_match.group(2))
type_obj['arraySize'] = int(vec_match.group(3)[1])
else:
type_obj['primarySize'] = int(vec_match.group(2))
return type_obj
......@@ -1200,6 +1212,11 @@ def get_variable_name_to_store_parameters(parameters):
return unique_name
def define_constexpr_type_array_sizes(template_args, type_array_sizes_declarations):
template_array_sizes_declaration = 'constexpr const unsigned int kArraySize{arraySize}[1] = {{{arraySize}}};'
type_array_sizes_declarations.add(template_array_sizes_declaration.format(**template_args))
def define_constexpr_variable(template_args, variable_declarations):
template_variable_declaration = 'constexpr const TVariable k{name_with_suffix}(BuiltInId::{name_with_suffix}, BuiltInName::{name}, SymbolType::BuiltIn, TExtension::{extension}, {type});'
variable_declarations.append(template_variable_declaration.format(**template_args))
......@@ -1289,9 +1306,9 @@ def gen_function_variants(function_props):
def process_single_function_group(
shader_type, group_name, group, parameter_declarations, name_declarations,
unmangled_function_if_statements, defined_function_variants, builtin_id_declarations,
builtin_id_definitions, defined_parameter_names, variable_declarations,
function_declarations, script_generated_hash_tests, unmangled_script_generated_hash_tests,
mangled_builtins):
builtin_id_definitions, defined_parameter_names, type_array_sizes_declarations,
variable_declarations, function_declarations, script_generated_hash_tests,
unmangled_script_generated_hash_tests, mangled_builtins):
global id_counter
if 'functions' not in group:
......@@ -1392,6 +1409,10 @@ def process_single_function_group(
template_builtin_id_declaration.format(**param_template_args))
define_constexpr_variable(param_template_args, variable_declarations)
defined_parameter_names.add(unique_param_name)
if param.has_array_size():
array_size_template_args = {'arraySize': param.data['arraySize']}
define_constexpr_type_array_sizes(array_size_template_args,
type_array_sizes_declarations)
parameters_list.append(
'&BuiltInVariable::k{name_with_suffix}'.format(**param_template_args))
......@@ -1415,12 +1436,12 @@ def process_single_function_group(
id_counter += 1
def process_function_group(group_name, group, parameter_declarations, name_declarations,
unmangled_function_if_statements, defined_function_variants,
builtin_id_declarations, builtin_id_definitions,
defined_parameter_names, variable_declarations, function_declarations,
script_generated_hash_tests, unmangled_script_generated_hash_tests,
mangled_builtins, is_in_group_definitions):
def process_function_group(
group_name, group, parameter_declarations, name_declarations,
unmangled_function_if_statements, defined_function_variants, builtin_id_declarations,
builtin_id_definitions, defined_parameter_names, type_array_sizes_declarations,
variable_declarations, function_declarations, script_generated_hash_tests,
unmangled_script_generated_hash_tests, mangled_builtins, is_in_group_definitions):
global id_counter
first_id = id_counter
......@@ -1431,9 +1452,9 @@ def process_function_group(group_name, group, parameter_declarations, name_decla
process_single_function_group(
shader_type, group_name, group, parameter_declarations, name_declarations,
unmangled_function_if_statements, defined_function_variants, builtin_id_declarations,
builtin_id_definitions, defined_parameter_names, variable_declarations,
function_declarations, script_generated_hash_tests, unmangled_script_generated_hash_tests,
mangled_builtins)
builtin_id_definitions, defined_parameter_names, type_array_sizes_declarations,
variable_declarations, function_declarations, script_generated_hash_tests,
unmangled_script_generated_hash_tests, mangled_builtins)
if 'subgroups' in group:
for subgroup_name, subgroup in group['subgroups'].iteritems():
......@@ -1441,8 +1462,9 @@ def process_function_group(group_name, group, parameter_declarations, name_decla
group_name + subgroup_name, subgroup, parameter_declarations, name_declarations,
unmangled_function_if_statements, defined_function_variants,
builtin_id_declarations, builtin_id_definitions, defined_parameter_names,
variable_declarations, function_declarations, script_generated_hash_tests,
unmangled_script_generated_hash_tests, mangled_builtins, is_in_group_definitions)
type_array_sizes_declarations, variable_declarations, function_declarations,
script_generated_hash_tests, unmangled_script_generated_hash_tests,
mangled_builtins, is_in_group_definitions)
if 'queryFunction' in group:
template_args = {'first_id': first_id, 'last_id': id_counter - 1, 'group_name': group_name}
......@@ -1670,6 +1692,9 @@ def generate_files(essl_only, args, functions_txt_filename, variables_json_filen
# Declarations of name string variables
name_declarations = set()
# Declarations of static array sizes if any builtin TVariable is array.
type_array_sizes_declarations = set()
# Declarations of builtin TVariables
variable_declarations = []
......@@ -1754,8 +1779,8 @@ def generate_files(essl_only, args, functions_txt_filename, variables_json_filen
process_function_group(
group_name, group, parameter_declarations, name_declarations,
unmangled_function_if_statements, defined_function_variants, builtin_id_declarations,
builtin_id_definitions, defined_parameter_names, variable_declarations,
function_declarations, script_generated_hash_tests,
builtin_id_definitions, defined_parameter_names, type_array_sizes_declarations,
variable_declarations, function_declarations, script_generated_hash_tests,
unmangled_script_generated_hash_tests, mangled_builtins, is_in_group_definitions)
parameter_declarations = prune_parameters_arrays(parameter_declarations, function_declarations)
......@@ -1792,6 +1817,8 @@ def generate_files(essl_only, args, functions_txt_filename, variables_json_filen
'\n'.join(is_in_group_definitions),
'variable_data_source_name':
variables_json_filename,
'type_array_sizes_declarations':
'\n'.join(sorted(type_array_sizes_declarations)),
'variable_declarations':
'\n'.join(sorted(variable_declarations)),
'get_variable_declarations':
......
......@@ -1135,63 +1135,63 @@ class BuiltInId
TSymbolUniqueId(3171);
static constexpr const TSymbolUniqueId textureGather_SamplerCubeShadow1_Float3_Float1 =
TSymbolUniqueId(3172);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(3173);
static constexpr const TSymbolUniqueId pt70D = TSymbolUniqueId(3174);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId pt10Dx4 = TSymbolUniqueId(3174);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(3175);
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(3176);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1 =
TSymbolUniqueId(3177);
static constexpr const TSymbolUniqueId
textureGatherOffsets_ISampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(3178);
textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3178);
static constexpr const TSymbolUniqueId
textureGatherOffsets_USampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(3179);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_Int4x2_Int1 =
textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3179);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(3180);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(3181);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(3182);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_Sampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(3183);
textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3183);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_ISampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(3184);
textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3184);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_USampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(3185);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_Int4x2 =
textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(3185);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2 =
TSymbolUniqueId(3186);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2 =
TSymbolUniqueId(3187);
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2 =
TSymbolUniqueId(3188);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(3189);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(3190);
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(3191);
static constexpr const TSymbolUniqueId
textureGatherOffsets_Sampler2DShadow1_Float2_Float1_Int4x2 = TSymbolUniqueId(3192);
textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(3192);
static constexpr const TSymbolUniqueId
textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_Int4x2 = TSymbolUniqueId(3193);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_Int4x2 =
textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(3193);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2 =
TSymbolUniqueId(3194);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2 =
TSymbolUniqueId(3195);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2 =
TSymbolUniqueId(3196);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(3197);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(3198);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(3199);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_Int4x2 = TSymbolUniqueId(3200);
textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(3200);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_Int4x2 = TSymbolUniqueId(3201);
textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(3201);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 =
TSymbolUniqueId(3202);
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 =
......
......@@ -1887,77 +1887,77 @@ class BuiltInId
TSymbolUniqueId(1348);
static constexpr const TSymbolUniqueId textureGather_Sampler2DRectShadow1_Float2_Float1 =
TSymbolUniqueId(1349);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1350);
static constexpr const TSymbolUniqueId pt70D = TSymbolUniqueId(1351);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId pt10Dx4 = TSymbolUniqueId(1351);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1352);
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1353);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2_Int1 =
TSymbolUniqueId(1354);
static constexpr const TSymbolUniqueId
textureGatherOffsets_ISampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(1355);
textureGatherOffsets_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1355);
static constexpr const TSymbolUniqueId
textureGatherOffsets_USampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(1356);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_Int4x2_Int1 =
textureGatherOffsets_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1356);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1357);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1358);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1359);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_Sampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(1360);
textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1360);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_ISampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(1361);
textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1361);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_USampler2DArray1_Float3_Int4x2_Int1 = TSymbolUniqueId(1362);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_Int4x2_Int1 =
textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2_Int1 = TSymbolUniqueId(1362);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1363);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1364);
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_Int4x2_Int1 =
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_4xInt2_Int1 =
TSymbolUniqueId(1365);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2D1_Float2_4xInt2 =
TSymbolUniqueId(1366);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2D1_Float2_4xInt2 =
TSymbolUniqueId(1367);
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2D1_Float2_4xInt2 =
TSymbolUniqueId(1368);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(1369);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(1370);
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(1371);
static constexpr const TSymbolUniqueId
textureGatherOffsets_Sampler2DShadow1_Float2_Float1_Int4x2 = TSymbolUniqueId(1372);
textureGatherOffsets_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1372);
static constexpr const TSymbolUniqueId
textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_Int4x2 = TSymbolUniqueId(1373);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_Int4x2 =
textureGatherOffsets_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(1373);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2D1_Float2_4xInt2 =
TSymbolUniqueId(1374);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2D1_Float2_4xInt2 =
TSymbolUniqueId(1375);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2D1_Float2_4xInt2 =
TSymbolUniqueId(1376);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_Sampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(1377);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_ISampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(1378);
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsetsExt_USampler2DArray1_Float3_4xInt2 =
TSymbolUniqueId(1379);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_Int4x2 = TSymbolUniqueId(1380);
textureGatherOffsetsExt_Sampler2DShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1380);
static constexpr const TSymbolUniqueId
textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_Int4x2 = TSymbolUniqueId(1381);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_Int4x2 =
textureGatherOffsetsExt_Sampler2DArrayShadow1_Float3_Float1_4xInt2 = TSymbolUniqueId(1381);
static constexpr const TSymbolUniqueId textureGatherOffsets_Sampler2DRect1_Float2_4xInt2 =
TSymbolUniqueId(1382);
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_ISampler2DRect1_Float2_4xInt2 =
TSymbolUniqueId(1383);
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_Int4x2 =
static constexpr const TSymbolUniqueId textureGatherOffsets_USampler2DRect1_Float2_4xInt2 =
TSymbolUniqueId(1384);
static constexpr const TSymbolUniqueId
textureGatherOffsets_Sampler2DRectShadow1_Float2_Float1_Int4x2 = TSymbolUniqueId(1385);
textureGatherOffsets_Sampler2DRectShadow1_Float2_Float1_4xInt2 = TSymbolUniqueId(1385);
static constexpr const TSymbolUniqueId textureGatherOffset_Sampler2D1_Float2_Int2_Int1 =
TSymbolUniqueId(1386);
static constexpr const TSymbolUniqueId textureGatherOffset_ISampler2D1_Float2_Int2_Int1 =
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment