Skip to content
Snippets Groups Projects
  1. Nov 02, 2018
    • Grigory Dzhavadyan's avatar
      Add names for composite constants in SPIR-V · 4c9876b3
      Grigory Dzhavadyan authored
      Consider the following code:
      
          layout(constant_id=0) const int Y = 1;
          layout(constant_id=1) const int Z = 2;
          layout(constant_id=3) const int X = Y + Z;
      
      Previously, it would produce SPIR-V decorations like this:
      
          Decorate 21(Y) SpecId 1
          Decorate 22 SpecId 3
          Decorate 33(Z) SpecId 0
      
      This seems inaccurate, since the spec constant `X` that is dependent on
      the two others did not get a name in the SPIR-V decorations. This behavior
      may potentially negatively affect shader introspection capabilities.
      
      This change alters the behavior to always add a name, which results in the code
      above producing the following decorations:
      
          Decorate 21(Y) SpecId 1
          Decorate 22(X) SpecId 3
          Decorate 33(Z) SpecId 0
      4c9876b3
  2. Oct 26, 2018
    • John Kessenich's avatar
    • Neil Henning's avatar
      Fix 8-bit storage nearly always using the · b6b01f06
      Neil Henning authored
      UniformAndStorageBuffer8BitAccess capability.
      
      When using the 8-bit storage extension it basically always used the
      `UniformAndStorageBuffer8BitAccess` capability, even in cases where it
      wasn't required. For instance if we are targeting Vulkan 1.1 (SPIR-V 1.3
      or higher), and we are only using 8-bit types in an SSBO, we only need
      the `StorageBuffer8BitAccess` capability.
      
      I fixed this by enabling storage buffer use in Vulkan 1.1 / SPIR-V 1.3
      or higher, and then changing the logic to match.
      
      I also added some tests that will output different capabilities when run
      on Vulkan 1.0 and 1.1, thus they are added twice to the test list (one
      for each version).
      
      Fixes #1539
      b6b01f06
    • Sahil Parmar's avatar
      Allow GL_NV_mesh_shader in fragment shaders for perprimitiveNV · 38772c04
      Sahil Parmar authored
      - Emit relevant capability/extension for use of perprimitiveNV in fragment shader
      - Remove redundant checks for mesh shader qualifiers in glslang.y
      - Add profile version check for use of extension GL_NV_mesh_shader
      - Add a new gtest for use of perprimitiveNV in fragment shader
      38772c04
  3. Oct 25, 2018
  4. Oct 17, 2018
  5. Oct 16, 2018
  6. Oct 05, 2018
  7. Oct 04, 2018
    • Sahil Parmar's avatar
      Allow redeclaration of builtin interface blocks in mesh shader · 035cbbe3
      Sahil Parmar authored
      Apart from allowing redeclaration of gl_MeshPerVertexNV and gl_MeshPerPrimitiveNV blocks, this change also -
      - Resize clip/cull perview distances based on static index use
      - Error out use of both single-view and per-view builtins
      - Add new gtests with redeclared blocks and edit existing test output
      - Fix couple of typos
      035cbbe3
  8. Sep 26, 2018
  9. Sep 25, 2018
    • Sahil Parmar's avatar
      Add ES 320 support and additional error checks for SPV_NV_mesh_shader · 95e2d4ec
      Sahil Parmar authored
      - Add ES 320 support
      - Error out use of perprimitiveNV for non mesh/fragment shaders
      - Error out use of mesh/task shaders w/o use of NV_mesh_shader
      - Error out use of NV_mesh_shader for non task/mesh shaders
      - Error out use of perviewNV for non mesh shaders
      - Error out use of taskNV for non mesh/task shaders
      - Add test case for mesh shader with ES 320 profile
      95e2d4ec
  10. Sep 20, 2018
  11. Sep 19, 2018
  12. Sep 11, 2018
  13. Sep 10, 2018
  14. Sep 07, 2018
  15. Aug 23, 2018
  16. Aug 16, 2018
  17. Aug 13, 2018
  18. Aug 09, 2018
  19. Aug 06, 2018
  20. Jul 27, 2018
  21. Jul 25, 2018
  22. Jul 23, 2018
  23. Jul 20, 2018
  24. Jul 19, 2018
  25. Jul 12, 2018
  26. Jul 11, 2018
  27. Jul 10, 2018
  28. Jul 05, 2018
    • Arseny Kapoulkine's avatar
      SPIRV: Simplify matrix->matrix constructor · 112e2858
      Arseny Kapoulkine authored
      When constructing a matrix from another matrix with smaller dimensions,
      there's no need to extract the scalars out of columns and rebuild the
      resulting matrix from scalars - instead, we can just construct shorter
      vectors with OpShuffle and combine them to the final result.
      
      This keeps the common casts such as mat3(mat4) in vector registers,
      which may improve performance for some GPUs, and cleans up output of
      translation tools like SPIRV-Cross.
      
      Fixes #1412.
      112e2858
Loading