Ricardo Garcia
232ba0d848
Add SPIR-V capabilities needed for spec constants ( #2199 )
...
Fixes #2198 .
2020-06-03 07:52:55 -06:00
alelenv
d39b8afc47
EXT_ray_tracing requires spv1.4 ( #2237 )
...
* EXT_ray_tracing requires spv1.4
* Fix typo.
* Add extension data table.
* Updated feedback #2 .
2020-05-28 09:18:07 -06:00
alelenv
59216d5cd8
Add support for primitive culling layout qualifier. ( #2220 )
...
* Add support for primitive culling layout qualifier.
* Add error checks for primitive flags and negative test.
2020-05-21 05:38:41 -06:00
John Kessenich
4657244018
Fix #2178 : Allow specialization constants for texel offsets.
2020-04-12 22:57:07 -06:00
alelenv
f986436a90
Error assigns to objects of rayQueryEXT type.
2020-03-30 10:24:30 -07:00
Neslisah Torosdagli
054b5e35eb
pass by reference updates
2020-03-26 12:24:31 -04:00
Neslisah Torosdagli
65c81bf236
compute and fragment shader test_cases added for rayQuery
2020-03-23 21:56:31 -04:00
Neslisah Torosdagli
2fb45def04
rayQuery test cases added
2020-03-23 21:34:09 -04:00
Neslisah Torosdagli
4893bae5e9
test names updated
2020-03-23 19:20:24 -04:00
Neslisah Torosdagli
39a7fc3700
rayQuery test cases disabled
2020-03-23 11:36:06 -04:00
Neslisah Torosdagli
50a722818b
GL_EXT_ray_query glslang updates, and test cases added.
2020-03-20 18:23:27 -04:00
Daniel Koch
db32b243ff
Add support for GLSL_EXT_ray_tracing
...
and SPV_KHR_ray_tracing
2020-03-17 20:42:47 -04:00
Jeff Bolz
40007b862d
Forbid memoryBarrierAtomicCounter for Vulkan compiles
2020-03-16 23:53:04 -05:00
Jeff Bolz
ad3f10bbd0
EXT_debug_printf - make escape sequences better match C/C++
2020-03-10 10:23:07 -05: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
Jeff Bolz
39ffdaf2ab
Allow nonuniformEXT() on sampler types.
...
Also add missing NonUniformEXT decoration on OpImageTexelPointer.
2020-03-09 10:48:12 -05:00
Jeff Bolz
04d73731de
GL_EXT_debug_printf implementation
2020-03-05 13:41:34 -06:00
Andreas Flöjt
cb563e68d2
Add a test for 8- and 16-bit construction.
2019-11-14 14:41:52 +01:00
David Neto
8c3d5b4b6c
SPIR-V: Aggressively prune unreachable merge, continue target
...
More aggressively prune unreachable code as follows.
When no control flow edges reach a merge block or continue target:
- delete their contents so that:
- a merge block becomes OpLabel, then OpUnreachable
- a continue target becomes OpLabel, then an OpBranch back to the
loop header
- any basic block which is dominated by such a merge block or continue
target is removed as well.
- decorations targeting the removed instructions are removed.
Enables the SPIR-V builder post-processing step the GLSLANG_WEB case.
2019-10-29 15:33:54 -04:00
Jeff Bolz
016ddee83a
Only apply volatile semantics to atomics when using Vulkan Memory Model
2019-10-17 11:22:57 -05: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
Jeff Bolz
c5b669e04c
Add GL_EXT_shader_subgroup_extended_types support
2019-09-17 23:44:27 -05:00
Jeff Bolz
387657e4cf
GL_NV_integer_cooperative_matrix support
2019-08-22 20:37:59 -05:00
John Kessenich
7015bd658e
Web: Remove/rationalize a set of *_EXTENSIONS, using GLSLANG_WEB.
...
Focus was on the front end (not SPIR-V), minus the grammar.
Reduces #ifdef count by around 320 and makes the web build 270K smaller,
which is about 90% the target size.
The grammar and scanner will be another step, as will the SPIR-V backend.
This makes heavy use of methods #ifdef'd to return false as a global way
of turning off code, relying on C++ DCE to do the rest.
2019-08-20 23:21:55 -06:00
John Kessenich
7fc8683491
Merge pull request #1813 from jeffbolznv/compositeconstruct
...
Handle SPIR-V type mismatch when constructing a composite
2019-07-28 23:20:26 -06:00
Sahil Parmar
f2dcc87c6a
Allow unsized view array dimension for non-block perviewNV attributes
2019-07-15 16:14:00 -07:00
John Kessenich
96524f9168
SPV: Fix #1783 : Don't do bounds checking for spec-const-expression size
...
It's okay for symbolic spec-consts, but without constant folding,
not okay when the array size is an expression.
2019-07-03 09:37:25 -06:00
Jeff Bolz
ba6170b534
Implement GL_EXT_demote_to_helper_invocation
2019-07-01 09:36:15 -05:00
Jeff Bolz
531344905f
Handle SPIR-V type mismatch when constructing a composite
2019-06-25 13:32:35 -05:00
Jeff Bolz
8912336663
Add test for constant type conversion
2019-06-21 23:32:25 -05:00
John Kessenich
5d73a3c95c
Merge pull request #1698 from jeffbolznv/private_storage_variables
...
Add Float16/Int8/Int16 capabilities for private variables and function parameters
2019-06-17 23:42:13 -06:00
Daniel Koch
2cb2f197a7
Add support for GL_NV_shader_sm_builtins
...
Including spirv and AST tests
Also increase size of TBuiltInVariable bitfields since we've now exceeded 127
and add a static_assert to make this easier to find next time it happens!
2019-06-08 08:53:11 -04:00
Jeff Bolz
c6f0ce8dbc
Support GL_ARB_fragment_shader_interlock
2019-06-03 11:55:25 -05:00
Jeff Bolz
8adc2f565e
Allow runtime-sized arrays of acceleration structures
2019-05-30 12:45:15 -05:00
John Kessenich
f43c739ac5
SPV 1.4: Emit SignExtend and ZeroExtend for integer image reads/writes.
2019-05-10 00:02:45 -06:00
John Kessenich
61a5ce190a
SPV 1.4: Lookup tables: Use variable initializer and NonWritable...
...
...when doing a variable lookup on an array of constants.
2019-05-10 00:02:45 -06:00
John Kessenich
fbb6bdf046
SPV 1.4: Add support for OpCopyLogical, careful of Boolean differences.
2019-05-10 00:02:45 -06:00
John Kessenich
1f4d04687b
SPV 1.4: Implement the 5 new loop controls.
2019-05-10 00:02:45 -06:00
John Kessenich
0c1e71a123
SPV 1.4: Use OpSelect for trivial typed non-scalar/vector expressions.
2019-05-10 00:02:45 -06:00
John Kessenich
cfea59d357
SPV 1.4: Add testing infrastructure for SPV 1.4 tests.
...
This includes the test for the first feature of OpEntryPoint.
2019-05-10 00:02:45 -06:00
Jeff Bolz
88220d507e
For nonuniformEXT constructor, make a copy of the node to decorate
2019-05-08 10:24:46 -05:00
John Kessenich
e291f7a09f
Merge pull request #1739 from jeffbolznv/buffer_reference2
...
Add support for GL_EXT_buffer_reference2
2019-05-08 17:12:52 +07:00
Jeff Bolz
758c93364c
Add support for GL_EXT_buffer_reference2
2019-05-01 16:13:26 -05:00
Jeff Bolz
faac86e5d6
If a shader's only use of float16 is for FConvert, add the Float16 capability.
...
When visiting instructions, check that there are no 16-bit storage capabilities
and add the Float16 capability. Same for int8/int16.
2019-05-01 11:45:51 -05:00
Jeff Bolz
be63facd80
Handle buffer references vs 'const'
...
Allow constructors to and from references to be constant folded. Section 4.3.3
says constructors whose arguments are all constant expressions must fold.
Disallow 'const' on buffer reference types. It is not a 'non-void transparent
basic data type' (it is not considered 'basic').
Handle buffer reference constants (which can be assigned to a non-const reference,
or can be further folded to another type of constant) by converting to
'constructor(uint64_t constant)' in addConversion.
Disallow == and != operators on reference types.
2019-03-04 12:46:11 -06:00
Jeff Bolz
4605e2ed2b
Implement GL_NV_cooperative_matrix
2019-02-25 23:42:59 -06:00
Jeff Bolz
2b2316d3fa
Add Float16/Int8/Int16 capabilities for private variables and function parameters
2019-02-17 22:50:00 -06:00
Rex Xu
eaf31ab98c
Add 8-bit/16-bit transform feedback support for future use
2019-02-03 23:31:32 +08:00
Jeff Bolz
9f2aec49e9
GL_EXT_buffer_reference
2019-01-07 12:36:13 -06:00
Alan Baker
3b656c79f4
Move memory model scope tests to Vulkan 1.1 batch
...
Fixes #1610
* Updated expected result due to version change
2018-12-17 17:07:55 -05:00