[Git][xorg-team/vulkan/spirv-reflect][upstream/latest] Add support for WeightTextureQCOM

Dylan Aïssi (@daissi) <[email protected]>
Newsgroups gmane.linux.debian.devel.x
Message-ID <[email protected]>

Dylan Aïssi pushed to branch upstream/latest at X Strike Force / vulkan / spirv-reflect


Commits:
62ca825c by spencer-lunarg at 2026-01-17T21:20:49-05:00
Add support for WeightTextureQCOM

- - - - -


4 changed files:

- common/output_stream.cpp
- + tests/glsl/weight_texture_qcom.glsl
- + tests/glsl/weight_texture_qcom.spv
- + tests/glsl/weight_texture_qcom.spv.yaml


Changes:

=====================================
common/output_stream.cpp
=====================================
@@ -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


=====================================
tests/glsl/weight_texture_qcom.glsl
=====================================
@@ -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;
+}
+


=====================================
tests/glsl/weight_texture_qcom.spv
=====================================
Binary files /dev/null and b/tests/glsl/weight_texture_qcom.spv differ


=====================================
tests/glsl/weight_texture_qcom.spv.yaml
=====================================
@@ -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 
+    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:
+...



View it on GitLab: https://salsa.debian.org/xorg-team/vulkan/spirv-reflect/-/commit/62ca825c692334ed758027b908c5aafbbc76243f

-- 
View it on GitLab: https://salsa.debian.org/xorg-team/vulkan/spirv-reflect/-/commit/62ca825c692334ed758027b908c5aafbbc76243f
You're receiving this email because of your account on salsa.debian.org.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.