Commit Graph

104 Commits

Author SHA1 Message Date
Pankaj Mistry
71f5f219ad Fix for issue #3020
Make OpEmitTMeshasksEXT a terminal instructions
2022-09-08 18:58:55 -07:00
Pankaj Mistry
228c67228a GL_EXT_mesh_shader/SPV_EXT_mesh_shader implementation
Added following updates to GL_EXT_mesh_shader implementation:

1. Added SPIRV and GLSL test cases
2. Added checks to ensure NV and EXT mesh shader builtins cannot be used interchangeably.
3. Updated the language name by removing the postfix "NV" to MeshShader and TaskShader.
4. Added checks for grammar checking to comply with the spec.

5. Added gl_NumWorkGroups builtin to Mesh shader
6. Fixed data type of gl_PrimitiveLineIndicesEXT and gl_PrimitiveTriangleIndicesEXT
7. Added new constants to the resources table
8. Updates to handle new storage qualifier "taskPayloadSharedEXT"
9. Updated test cases by replacing "taskEXT" with storage qualifier "taskPayloadSharedEXT"

Addressed  Review comments
1. Fixed instruction description used by glslang disassembly.
2. Updated OpEmitMeshTasksEXT as per spec update
3. Fixed implementation that errors out if there are more then one taskPayloadSharedEXT varjables.
4. Fixed miscellaneous error logs and removed unwanted code.

SPIRV 1.6 related build failure fixes
- Update SPIRV header to 1.6
- Fix conflict wiht SPIRV 1.6 change, where localSizeId is used for execution mode for mesh/task shaders

Enable SPIRV generated for EXT_mesh_shader to be version 1.4

GL_EXT_mesh_shader: Add checks for atomic support and corresponding test cases
2022-09-01 18:02:21 -07:00
Jeremy Hayes
5326d151b2 Update known_good.json 2022-08-10 12:29:15 -06:00
Jeremy Hayes
3f369d4a16 Update known_good.json 2022-06-02 11:51:31 -06:00
Marius Bjorge
dab6fc8960 Update spirv-tools and spirv-headers known good 2022-05-05 14:03:57 +02:00
Greg Fischer
e77298891a Update spirv-tools known good 2022-04-06 12:00:57 -06:00
Greg Fischer
0988e868f5 Update spirv-tools and spirv-headers known good
To pick up support for spirv-opt --eliminate-dead-input-components
2022-03-24 10:23:19 -06:00
Greg Fischer
acd4425a29 Update spirv-tools known good
Picking up some spirv-tools bug fixes
2022-02-02 18:37:43 -07:00
Greg Fischer
9ebd8ff6c1 Add Vulkan 1.3 support
Also update known goods to Vulkan 1.3 support
Also re-enable SPIR-V 1.6 tests with vulkan1.3 target
Also re-cache SPIRV 1.6 header which somehow regressed back to 1.5
2022-01-26 17:57:31 -07:00
Greg Fischer
7a49192d23 Add support for spirv1.6
Add command line support which enables the following behavior:

- Remap discard

  Map discard to DemoteToHelperInvocation for HLSL shaders. Map to
  OpTerminateInvocation for GLSL shaders.

- Decorate HelperInvocation with Volatile

- Use localSizeId for execution mode

  WorkGroupSize is deprecated in spirv1.6

Also update known goods to SPIRV 1.6
2021-12-16 15:01:42 -07:00
Alan Baker
1025f4736a Update SPIRV-Tools
* Fix test expectations
2021-11-16 19:03:12 -05:00
Greg Fischer
77415296b2 Update to latest spirv-headers 2021-11-11 08:43:30 -07:00
Alan Baker
855f496170 Update SPIRV-Tools and SPIRV-Headers 2021-11-05 14:33:31 -04:00
Greg Fischer
e49ae91c9d Update known goods and CHANGES for 11.6.0 2021-08-25 13:32:27 -06:00
alelenv
35af9ea58e Update known_good for SPV_NV_ray_tracing_motion_blur. 2021-08-12 09:57:22 -07:00
Greg Fischer
83be602174 Update known goods and CHANGES for 11.5.0 2021-06-23 13:47:39 -06:00
Alan Baker
f997bb32da Update known good SPIRV-Tools and SPIRV-Headers 2021-06-15 11:11:58 -04:00
Jaebaek Seo
a5f9118e7c Update known_good.json for SPIRV-Tools 2021-06-08 09:47:29 -04:00
Greg Fischer
f90377e74a Update spirv-tools and spirv-headers known good 2021-04-21 18:33:46 -06:00
Greg Fischer
7fbaca0d06 Fix SPIR-V for HLSL EvaluateAttribute* of interpolants in structs
Generate load of interpolant for first operand to GLSLstd450
InterpolateAt* SPIR-V ops. This allows the interpolants to
propagate from the input struct in the wrapper around main
into the shader during HLSL legalization. A new pass has been
added to legalization which will remove the load and replace
with the pointer of the load to create valid external
interpolate op.

Fixes #2584
2021-04-01 00:31:31 -06:00
Greg Fischer
6866807d6a Update spirv-tools and spirv-header known good.
This is being done to allow Vulkan validation layers to pick up
the new differentiated error code support in spirv-tools for
GPU-AV.
2021-02-11 15:36:28 -07:00
Caio Marcelo de Oliveira Filho
3785ddd59a Update known_good.json to pick up SPV_KHR_workgroup_memory_explicit_layout
Also update the test expectations regarding validation accordingly and
the in-tree spirv.hpp copy.
2021-01-29 11:22:22 -08:00
David Neto
3805671ce8 Update known_good, pick up ImageRead result validation
Pick up https://github.com/KhronosGroup/SPIRV-Tools/pull/4072
which validates the result type of OpImageRead.

This also requires test expectation updates.

See #2486 tracks the needed upate to Glslang code generation.
2020-12-15 12:09:50 -05:00
greg-lunarg
c594de23cd
Update spirv-tools known-good #2 - Pick up ray tracing terminator fix (#2478) 2020-12-07 18:20:27 -07:00
greg-lunarg
dd69df7f3d
Update spirv-tools known-good (#2473) 2020-12-03 13:07:33 -07:00
Daniel Koch
e11a2c8bec
update spirv-headers and fix handling of gl_HitTEXT (#2471)
* update spirv-headers and fix handling of gl_HitTEXT

Update spirv-headers known_good to f027d53ded7e230e008d37c8b47ede7cd308e19d
and update SPIRV/spirv.hpp to copy from that version as well.

In GLSL gl_HitTNV/gl_HitTEXT is defined as an alias of gl_RayTmaxNV/gl_RayTmaxEXT
SPV_NV_ray_tracing has a dedicated HitTNV which gl_HitTNV maps to.
For SPV_KHR_ray_tracing, gl_HitTEXT gets mapped to a RayTmaxKHR decoraged variable
to simplify the SPIRV consumer.
This change fixes the mapping for the GL_EXT_ray_tracing extension, and updates
the test results to match.

* update MissNV shader test to not use ObjectRay builtins

They shouldn't existing in the miss stage because there is no object intersected
2020-11-30 09:57:34 -07:00
Daniel Koch
ffccefddfd
Updates for final Vulkan ray tracing extensions (#2466)
* Fix traceRay/executeCallable to have id instead of constant.

Update to final (non-provisional) SPIR-V capabilities
(includes review feedback)
- Change visibilty of findLinkerObjects.

See merge request GLSL/glslang!78

* Add support for OpConvertUToAccelerationStructureKHR.

GLSL : https://gitlab.khronos.org/GLSL/GLSL/-/merge_requests/60

SPV : https://gitlab.khronos.org/spirv/spirv-extensions/-/merge_requests/182

See merge request GLSL/glslang!77

* Add volatile qualifier to certain builtins for ray tracing.

See merge request GLSL/glslang!81

* make gl_RayTmaxEXT volatile in intersection shader

Vulkan Issue #2268

* Add testing for layouts on SBT

vulkan/vulkan#2230

- no layout specified should be same as std430
- explicitly test std140, std430, scalar layouts

See merge request GLSL/glslang!86

* Support for new opcodes OpIgnoreIntersectionKHR and OpTerminateRayKHR

vulkan/vulkan#2374

Add support for ignoreIntersectionEXT and terminateRayEXT as block
terminator statements.

See merge request GLSL/glslang!87

* Fix code-generation issues with global ray query variables

See merge request GLSL/glslang!88

* update dependencies for spirv-headers and tools

And update mesh shader results

* Fix indeterminate argument ordering

Authored-by: David Neto <dneto@google.com>

Co-authored-by: Ashwin Lele (NVIDIA Corporation) <alele@nvidia.com>
Co-authored-by: Neslisah <Neslisah.Torosdagli@amd.com>
2020-11-23 13:41:27 -07:00
Jaebaek Seo
ed8bd0453f
Do not use PropagateLineInfoPass and RedundantLineInfoElimPass (#2440)
* Do not use PropagateLineInfoPass and RedundantLineInfoElimPass

Since spirv-opt will remove PropagateLineInfoPass and
RedundantLineInfoElimPass, glslang should not use it. spirv-opt will
propagate the line instructions and eliminate the redundant lines by
default in IR loading/emission.

* Update known_good.json for spirv-tool
2020-11-02 10:49:31 -07:00
Chow
a315b5633b Add GL_EXT_fragment_shading_rate 2020-10-20 13:46:13 +01:00
greg-lunarg
bacaef3237
Update spirv-tools and spirv-headers known goods (#2401) 2020-09-24 20:07:15 -06:00
Alan Baker
fe1168750e Update SPIRV-Tools and SPIRV-Headers known good 2020-08-12 09:04:24 -04:00
Greg Fischer
8b96a01a6a Update spirv-tools known-good to most recent stable 2020-07-22 15:10:04 -06:00
Vikram Kushwaha
79b93923d2 Add changes for SPV_EXT_shader_atomic_float_add 2020-07-22 05:52:22 -07:00
John Kessenich
863ea235bb SPIRV-Tools and tests: Update to location-validation in SPIRV-Tools.
This introduces five new "Validation failures":
- baseResults/hlsl.semantic.vert: issue with gl_ClipDistance/CullDistance
- baseResults/spv.430.vert: issue gl_ClipDistance
- baseResults/spv.450.tesc: still unknown
- baseResults/spv.dataOut.frag: gl_FragData should not be supported, problem with front end
- baseResults/spv.meshShaderPerViewUserDefined.mesh: seems okay, maybe a problem with SPIRV-Tools
2020-07-01 07:18:57 -06:00
greg-lunarg
41f62a81ab
Update SPIRV-Tools to stable. Also SPIRV-Headers to TOT. (#2250) 2020-05-27 22:10:36 -06:00
alan-baker
2b0eafb1de
Update spirv tools (#2246)
* Update known good SPIRV-Tools

* Update test expectations
2020-05-25 10:18:42 -06:00
Jaebaek Seo
08a05bc2b9
Move to newer version of SPIRV-Tools
* Update tests according to spirv-opt update

We refactored function inlining pass of spirv-opt and it results in
different numbering of result ids in SPIR-V code. This commit updates
test cases to avoid a test failure according to the spirv-opt update.

* Update known good
2020-05-14 11:06:05 -06:00
Greg Fischer
386f18cc39 Update spirv-tools known_good to latest stable 2020-03-27 11:34:45 -06:00
Daniel Koch
0ea0e96d2a update known_good 2020-03-17 20:42:47 -04:00
Jeff Bolz
b57af2f5ad Decorate accesschain operand for nonuniform UBO loads
This is conservative and still also decorates the loaded value.
2020-03-09 14:09:41 -05:00
Samuel Iglesias Gonsálvez
a515fff401 SPV_AMD_shader_image_load_store_lod is now validated by spirv-tools 2020-02-20 06:57:49 +01:00
John Kessenich
c3bb5d6914 Update to latest SPIRV-Tools, supporting Vulkan 1.2. 2020-01-15 09:35:48 -07:00
Greg Fischer
85122e7051 Update spriv-tools known good 2019-12-12 11:15:42 -07:00
Greg Fischer
b44dac1968 Update spirv-tools known good. 2019-10-24 10:37:01 -06:00
Greg Fischer
39ced690d6 Update spirv-tools known good. 2019-10-10 19:57:01 -06:00
John Kessenich
90e402f42b SPV_KHR_physical_storage_buffer/SPV: Add GL_EXT_buffer_reference_uvec2
Adds uvec2 <-> reference constructor support.
Switches from EXT to KHR for physical_storage_buffer.
2019-09-18 23:52:36 -06:00
Greg Fischer
d6df1fb13f Update spirv-tools and spriv-headers known good. 2019-09-04 14:15:57 -06:00
Greg Fischer
38317065f6 Update spirv-tools and spirv-headers known good.
Previous known-good contained regression per sperron at Google.
2019-07-18 13:53:09 -06:00
Jason Macnak
ea5715ca7f Update known good SPIRV-Tools commit
Update the known good SPIRV-Tools commit to eventually propagate the
commit allowing the ray tracing stages in pass instrumentation to the
vulkan validation layers (validation layers depends on glslang which
depends on spirv-tools).
2019-07-16 09:39:54 -07:00
Alan Baker
5a391cc57c Update SPIRV-Tools revision 2019-07-08 14:14:13 -04:00