204 Commits

Author SHA1 Message Date
Sahil Parmar
035cbbe3d0 Allow redeclaration of builtin interface blocks in mesh shader
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
2018-10-04 16:39:18 -07:00
Sahil Parmar
95e2d4ec02 Add ES 320 support and additional error checks for SPV_NV_mesh_shader
- 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
2018-09-25 13:45:32 -07:00
Chao Chen
5b2203db04 Add-support-for-SPV_NV_shading_rate 2018-09-19 13:07:43 -07:00
Chao Chen
b50c02ef53 Add-support-for-SPV_NVX_raytracing 2018-09-19 13:07:43 -07:00
Chao Chen
3c3669904c Add-support-for-SPV_NV_mesh_shader 2018-09-19 13:07:43 -07:00
Chao Chen
3a1379667d 0003-Add-support-for-SPV_NV_shader_image_footprint 2018-09-19 13:07:42 -07:00
Chao Chen
beae2251b7 Add-support-for-SPV_NV_compute_shader_derivatives 2018-09-19 13:07:42 -07:00
Chao Chen
9eada4b971 Add-support-for-SPV_NV_fragment_shader_barycentric 2018-09-19 13:07:42 -07:00
Norbert Garnys
dad0c1bed0 Add GL_EXT_shader_atomic_int64 2018-09-13 15:34:26 +02:00
Jeff Bolz
36831c9bad GL_KHR_memory_scope_semantics 2018-09-06 20:36:14 -05:00
otakuto
d03da06ac1 Remove execute permissions 2018-08-07 03:16:20 +09:00
Alex Smith
e47bfaedf6 Add support for GL_EXT_samplerless_texture_functions 2018-07-01 10:58:53 +01:00
John Kessenich
2a805d9cea Revert "GLSL: Fix #1279: refract does not have a double-type eta."
This reverts commit ebec909487b8c44a8c28b40c9899857593cc9bb5.

Khronos decided glslang was originally correct, and the specifications
are incorrect.
2018-06-19 09:43:09 -06:00
John Kessenich
ebec909487 GLSL: Fix #1279: refract does not have a double-type eta. 2018-05-17 10:43:21 -06:00
John Kessenich
9cf275bb9e Build: Add missing break statements. Fixes #1052. 2018-04-26 14:12:29 -06:00
Jeff Bolz
2abe9a4d34 Implement GL_NV_shader_subgroup_partitioned 2018-03-29 22:52:17 -05:00
Rex Xu
ae06d1fe94 Add int16 support to AMD_trinary_minmax and AMD_shader_ballot 2018-03-28 16:33:01 +08:00
John Kessenich
859b0342b8 Types: Fix #1290: Rationalize and correct "mixed" style array dimensioning.
There a couple functional problems, which when reduced down also led to
some good simplifications and rationalization.  So, this commit:
 - corrects "mixed" functionality: int[A] f[B] -> f[B][A]
 - correct multi-identifier decls: int[A] f[B], g[C] -> f and g are independently sized.
 - increases symmetry between different places in the code that do this
 - makes fewer ways to do the same thing; several methods are just gone now
 - makes more clear when something is copied or shared
2018-03-26 00:38:53 -06:00
John Kessenich
66011cb2c2 SPV: Implement Vulkan 1.1 features and extensions. 2018-03-06 16:12:04 -07:00
John Kessenich
b5b5f918c6 Non-functional: Make the vulkan version number meaning be only 0 or not 0. 2018-03-02 18:17:42 -07:00
Rex Xu
1e5d7b0b27 Implement the extension GL_AMD_gpu_shader_half_float_fetch
- Support new opaque types: f16sampler*, f16image*, f16subpassInput*.
- Add new built-in GLSL texture/image functions.
2018-03-02 16:48:03 +08:00
davidhubbard
f5ddcfc528 TBuiltIns::identifyBuiltIns: EShLangFragment fallthrough
EShLangFragment falls through to EShLangCompute, only #ifndef AMD_EXTENSIONS.
This is probably a bug.
2018-02-28 11:29:04 -06:00
Piers Daniell
1c5443c693 Add implementation of SPV_EXT_fragment_fully_covered
This implementation uses the GLSL extension
GL_NV_conservative_raster_underestimation to generate the new SPIR-V
FullyCoveredEXT built in.
2017-12-14 07:42:23 -07:00
John Kessenich
2edde6665d SPV: Don't support noise*() when generating SPV. 2017-11-03 03:39:48 -06:00
John Kessenich
715c353a15 Non-functional: copyright update, to help with non-determinism test. 2017-10-28 14:42:44 -06:00
Rex Xu
e8fe8b0de9 Implement extension GL_NV_shader_atomic_int64 2017-09-27 12:06:27 +08:00
John Kessenich
31365afaf4 Merge pull request #1044 from dsrbecky/image_external_essl3
Add support for GL_OES_EGL_image_external_essl3
2017-09-15 21:10:08 -06:00
John Kessenich
ba6a3c290e GLSL: Make gl_Layer and gl_ViewportIndex always be outside blocks.
There was some ambiguity/contradiction in this behavior, and
Khronos decided glslang should always have these outside blocks,
rather than have stage/vendor/target variations.
2017-09-13 13:22:50 -06:00
amhagan
05506bb874 Implement the extension GL_AMD_shader_fragment_mask 2017-09-09 22:05:24 +08:00
David Srbecký
2c5b3d64af Add support for GL_OES_EGL_image_external_essl3 2017-09-05 14:56:26 +01:00
Rex Xu
2a305f6531 Fix issues of GL_ARB_viewport_layer_array 2017-09-01 06:54:19 +08:00
Rex Xu
129799a709 Implement extension GL_AMD_shader_image_load_store_lod 2017-08-24 06:56:39 +08:00
John Kessenich
934d11b6db GLSL 4.6: Implement shader group vote. 2017-07-31 03:00:04 -06:00
John Kessenich
941f3bbd7a GLSL 4.6: Implement draw parameters. 2017-07-31 03:00:04 -06:00
John Kessenich
0d0c6d38f0 GLSL 4.6: Implement atomic counter ops and SPV_KHR_shader_atomic_counter_ops. 2017-07-31 03:00:04 -06:00
John Kessenich
53863a3a90 GLSL: Implement version 320 for ES. 2017-07-23 13:54:15 -06:00
David Srbecký
0fbe02c6a0 Implement extensions GL_OVR_multiview and GL_OVR_multiview2
They are almost identical to the already supported GL_EXT_multiview
2017-06-30 19:11:56 +01:00
Rex Xu
37cdceed41 Implement extension GL_ARB_shader_stencil_export 2017-06-29 17:50:46 +08:00
David Srbecky
c6ac40a1a7 Add support for GL_EXT_shadow_samplers 2017-06-26 17:43:32 +01:00
Rex Xu
cabbb788b4 Implement extension GL_AMD_gpu_shader_int16
- Add int16 types (int16_t, uint16_t, i16vec, u16vec).
- Add int16 support to GLSL operators.
- Add int16 type conversions (to int16, from int16).
- Add int16 built-in functions.
2017-06-09 17:11:23 +08:00
Rex Xu
225e0fcadd Implement the extension GL_AMD_texture_gather_bias_lod 2017-06-05 16:41:06 +08:00
John Kessenich
2c6f48b1f6 Fix #373: Implicitly make gl_FragColor a location=0 output. 2017-05-20 13:23:25 -06:00
John Kessenich
12d693682f Build fix: Make string assignment simpler to avoid some compiler issues.
Included changing related parameters to const.
Should fix complaints with previous commit. See issue #879.
2017-05-09 23:30:56 -06:00
John Kessenich
1ee1c8e1ed Build: Fix portability in previous commit. 2017-05-08 00:47:48 -06:00
John Kessenich
c10191d132 SPV: Support texelFetch() on a textureBuffer (no sampler).
Fixes Vulkan Khronos-internal issue 770.
2017-05-08 00:12:28 -06:00
John Kessenich
0e7378446b Fix #790: Don't emit NV-specific interface members unless enabled by extension. 2017-03-24 18:40:40 -06:00
John Kessenich
c08fb8ab9c Full stack: properly implement GL_EXT_device_group and GL_EXT_multiview. 2017-03-14 16:45:30 -06:00
John Kessenich
601b7fa4b9 Revert previous check-in, until knowing what the spec. is and whether the test failure is related. 2017-03-13 22:49:36 -06:00
John Kessenich
7a44a31dee SPV: Address #759: make ViewIndex and DeviceIndex by 'in', not 'uniform'. 2017-03-13 15:43:26 -06:00
Daniel Koch
efc972799d Rename KHX to EXT to match the released specs
GL_KHX_multiview and GL_KHX_device_group don't exist,
they were released as GL_EXT_multiview and GL_EXT_device_group.
2017-03-03 18:40:48 -05:00