Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions common/output_stream.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,8 @@ std::string ToStringDecorationFlags(SpvReflectDecorationFlags decoration_flags)
PRINT_AND_CLEAR_DECORATION_FLAG(sstream, decoration_flags, PATCH);
PRINT_AND_CLEAR_DECORATION_FLAG(sstream, decoration_flags, PER_VERTEX);
PRINT_AND_CLEAR_DECORATION_FLAG(sstream, decoration_flags, PER_TASK);
PRINT_AND_CLEAR_DECORATION_FLAG(sstream, decoration_flags, WEIGHT_TEXTURE);
PRINT_AND_CLEAR_DECORATION_FLAG(sstream, decoration_flags, BLOCK_MATCH_TEXTURE);
#undef PRINT_AND_CLEAR_DECORATION_FLAG
if (decoration_flags != 0) {
// Unhandled SpvReflectDecorationFlags bit
Expand Down
17 changes: 17 additions & 0 deletions tests/glsl/weight_texture_qcom.glsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#version 450
#extension GL_QCOM_image_processing : require

layout(set = 0, binding = 0) uniform texture2D inTex;
layout(set = 0, binding = 3) uniform sampler linearSampler;
layout(set = 0, binding = 1) uniform texture2DArray kernelTex;
layout(set = 0, binding = 4) uniform sampler weightSampler;

layout(location = 0) out vec4 fragColor;
layout(location = 0) in vec2 uv;

void main()
{
vec4 _32 = textureWeightedQCOM(sampler2D(inTex, linearSampler), uv, sampler2DArray(kernelTex, weightSampler));
fragColor = _32;
}

Binary file added tests/glsl/weight_texture_qcom.spv
Binary file not shown.
293 changes: 293 additions & 0 deletions tests/glsl/weight_texture_qcom.spv.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,293 @@
%YAML 1.1
---
all_type_descriptions:
- &td0
id: 10
op: 25
type_name:
struct_member_name:
storage_class: -1 # NOT APPLICABLE
type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 0, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
array: { dims_count: 0, dims: [], stride: 0 }
member_count: 0
members:
- &td1
id: 24
op: 25
type_name:
struct_member_name:
storage_class: -1 # NOT APPLICABLE
type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 0, arrayed: 1, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
array: { dims_count: 0, dims: [], stride: 0 }
member_count: 0
members:
- &td2
id: 14
op: 26
type_name:
struct_member_name:
storage_class: -1 # NOT APPLICABLE
type_flags: 0x00020000 # EXTERNAL_SAMPLER
decoration_flags: 0x00000000 # NONE
traits:
numeric:
scalar: { width: 0, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
array: { dims_count: 0, dims: [], stride: 0 }
member_count: 0
members:
- &td3
id: 20
op: 23
type_name:
struct_member_name:
storage_class: -1 # NOT APPLICABLE
type_flags: 0x00000108 # VECTOR FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
scalar: { width: 32, signedness: 0 }
vector: { component_count: 2 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
array: { dims_count: 0, dims: [], stride: 0 }
member_count: 0
members:
- &td4
id: 7
op: 23
type_name:
struct_member_name:
storage_class: -1 # NOT APPLICABLE
type_flags: 0x00000108 # VECTOR FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
scalar: { width: 32, signedness: 0 }
vector: { component_count: 4 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
array: { dims_count: 0, dims: [], stride: 0 }
member_count: 0
members:
all_block_variables:
- &bv0
name:
offset: 0
absolute_offset: 0
size: 0
padded_size: 0
decorations: 0x00000000 # NONE
numeric:
scalar: { width: 0, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
array: { dims_count: 0, dims: [], stride: 0 }
flags: 0x00000000 # NONE
member_count: 0
members:
type_description:
- &bv1
name:
offset: 0
absolute_offset: 0
size: 0
padded_size: 0
decorations: 0x00000000 # NONE
numeric:
scalar: { width: 0, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
array: { dims_count: 0, dims: [], stride: 0 }
flags: 0x00000000 # NONE
member_count: 0
members:
type_description:
- &bv2
name:
offset: 0
absolute_offset: 0
size: 0
padded_size: 0
decorations: 0x00000000 # NONE
numeric:
scalar: { width: 0, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
array: { dims_count: 0, dims: [], stride: 0 }
flags: 0x00000000 # NONE
member_count: 0
members:
type_description:
- &bv3
name:
offset: 0
absolute_offset: 0
size: 0
padded_size: 0
decorations: 0x00000000 # NONE
numeric:
scalar: { width: 0, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
array: { dims_count: 0, dims: [], stride: 0 }
flags: 0x00000000 # NONE
member_count: 0
members:
type_description:
all_descriptor_bindings:
- &db0
spirv_id: 12
name: "inTex"
binding: 0
input_attachment_index: 0
set: 0
decoration_flags: 0x00000000 # NONE
descriptor_type: 2 # VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
resource_type: 4 # SRV
image: { dim: 1, depth: 0, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
block: *bv0 #
array: { dims_count: 0, dims: [] }
accessed: 1
uav_counter_id: 4294967295
uav_counter_binding:
type_description: *td0
word_offset: { binding: 91, set: 87 }
- &db1
spirv_id: 26
name: "kernelTex"
binding: 1
input_attachment_index: 0
set: 0
decoration_flags: 0x00002000 # WEIGHT_TEXTURE
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was 0 before

descriptor_type: 2 # VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
resource_type: 4 # SRV
image: { dim: 1, depth: 0, arrayed: 1, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
block: *bv1 #
array: { dims_count: 0, dims: [] }
accessed: 1
uav_counter_id: 4294967295
uav_counter_binding:
type_description: *td1
word_offset: { binding: 111, set: 107 }
- &db2
spirv_id: 16
name: "linearSampler"
binding: 3
input_attachment_index: 0
set: 0
decoration_flags: 0x00000000 # NONE
descriptor_type: 0 # VK_DESCRIPTOR_TYPE_SAMPLER
resource_type: 1 # SAMPLER
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
block: *bv2 #
array: { dims_count: 0, dims: [] }
accessed: 1
uav_counter_id: 4294967295
uav_counter_binding:
type_description: *td2
word_offset: { binding: 99, set: 95 }
- &db3
spirv_id: 28
name: "weightSampler"
binding: 4
input_attachment_index: 0
set: 0
decoration_flags: 0x00000000 # NONE
descriptor_type: 0 # VK_DESCRIPTOR_TYPE_SAMPLER
resource_type: 1 # SAMPLER
image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown
block: *bv3 #
array: { dims_count: 0, dims: [] }
accessed: 1
uav_counter_id: 4294967295
uav_counter_binding:
type_description: *td2
word_offset: { binding: 119, set: 115 }
all_interface_variables:
- &iv0
spirv_id: 22
name: "uv"
location: 0
storage_class: 1 # Input
semantic:
decoration_flags: 0x00000000 # NONE
built_in: -1 # ??? (-1)
numeric:
scalar: { width: 32, signedness: 0 }
vector: { component_count: 2 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
array: { dims_count: 0, dims: [], stride: 0 }
member_count: 0
members:
format: 103 # VK_FORMAT_R32G32_SFLOAT
type_description: *td3
word_offset: { location: 103 }
- &iv1
spirv_id: 9
name: "fragColor"
location: 0
storage_class: 3 # Output
semantic:
decoration_flags: 0x00000000 # NONE
built_in: -1 # ??? (-1)
numeric:
scalar: { width: 32, signedness: 0 }
vector: { component_count: 4 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
array: { dims_count: 0, dims: [], stride: 0 }
member_count: 0
members:
format: 109 # VK_FORMAT_R32G32B32A32_SFLOAT
type_description: *td4
word_offset: { location: 83 }
module:
generator: 8 # Khronos Glslang Reference Front End
entry_point_name: "main"
entry_point_id: 4
source_language: 2 # GLSL
source_language_version: 450
spirv_execution_model: 4 # Fragment
shader_stage: 0x00000010 # PS
descriptor_binding_count: 4
descriptor_bindings:
- *db0 # "inTex"
- *db1 # "kernelTex"
- *db2 # "linearSampler"
- *db3 # "weightSampler"
descriptor_set_count: 1
descriptor_sets:
- set: 0
binding_count: 4
bindings:
- *db0 # "inTex"
- *db1 # "kernelTex"
- *db2 # "linearSampler"
- *db3 # "weightSampler"
input_variable_count: 1,
input_variables:
- *iv0 # "uv"
output_variable_count: 1,
output_variables:
- *iv1 # "fragColor"
push_constant_count: 0,
push_constants:
specialization_constant_count: 0,
specialization_constants:
...