David Neto
2067d1a93e
Add test case for read-only storage texture passed to helper function ( #2414 )
...
This is based on spv.paramMemory.frag.out which exercises the
writeonly storage image case.
This appears to need desktop GLSL.
The generated SPIR-V fails validation because the image_write function
takes a parameter which is pointer to an OpTypeImage with Unknown format.
But the parameters passed in are pointer to OpTypeImage with formats Rgba32f
and Rgba16f. The validator rejects this, saying the parameter types must
match.
2020-10-07 16:10:27 -06:00
Tobias Hector
395bce6c85
Added missing copyright amendment
2020-09-08 11:10:27 +01:00
Tobias Hector
ed7a097d19
Error when initializing rayQuery with assignment
2020-09-03 15:16:25 +01:00
johnkslang
23f3bdfea1
Build/Test: Dropping 2013 allows using the latest googletests.
...
These have a new spelling: INSTANTIATE_TEST_CASE_P -> INSTANTIATE_TEST_SUITE_P
2020-08-05 11:07:07 -06:00
Vikram Kushwaha
79b93923d2
Add changes for SPV_EXT_shader_atomic_float_add
2020-07-22 05:52:22 -07:00
John Kessenich
f80ef74c80
Fix recently found non-determinism with gl_WorldToObject3x4EXT.
2020-07-14 01:44:35 -06:00
John Kessenich
fe24a54808
Non-determinism: Remove test file that seems to trigger non-determinism.
...
This problem needs to be fixed, but in parallel, we need to see master
and any other changes to it passing all tests.
The removed test is ray-tracing centric, and may indicate non-determinism
in recent code added for that functionality.
2020-07-14 00:32:25 -06:00
John Kessenich
4e13c90944
Fix #2329 : don't use invalid initializers.
2020-07-13 00:35:58 -06:00
John Kessenich
12c155f303
SPV: RelaxedPrecision: use the result precision for texture sampling.
...
Fix #2298 .
The AST has two precisions, an operation precision and a result precision.
Actual use of GLSL with mediump samplers wants the result precision, so
pick that up instead of the operation precision.
2020-06-30 07:52:05 -06:00
John Kessenich
4df10335e6
SPV: Partially address #2293 : correct "const in" precision matching.
...
Track whether formal parameters declare reduced precision and match
that with arguments, and if they differ, make a copy to promote the
precision.
2020-06-26 08:37:06 -06:00
John Kessenich
c30d335377
Fix #2264 : OpEntryPoint incorrectly including function parameters.
2020-06-10 07:17:11 -06:00
Alejandro Piñeiro
ff6dcca575
spirv: Support initializers on uniforms ( #1588 )
...
If a uniform has an initializer it will now be given as the optional
initializer operand to the OpVariable instruction.
Fixes: https://github.com/KhronosGroup/glslang/issues/1259
Signed-off-by: Neil Roberts <nroberts@igalia.com > (the code)
Signed-off-by: Alejandro Piñeiro <apinheiro@igalia.com > (the tests)
Signed-off-by: Arcady Goldmints-Orlov <agoldmints@igalia.com >
Co-authored-by: Neil Roberts <nroberts@igalia.com >
2020-06-04 01:39:31 -06:00
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