Commit Graph

2978 Commits

Author SHA1 Message Date
t.jung
697fdf015f HLSL: fix invalid spir-v vector * scalar for float1
Missing check for float results in always emitting OpIMul even for float types
2018-11-14 14:27:22 +01:00
John Kessenich
7274bbc27c
Merge pull request #1571 from dj2/result
Handle potentially uninitialized result
2018-11-13 08:36:43 -07:00
Dan Sinclair
12fcaa2cc2 Review feedback 2018-11-13 09:17:44 -05:00
John Kessenich
97573b0c41
Merge pull request #1573 from dneto0/fix-pch
PCH filename depends on current binary dir
2018-11-12 16:13:40 -07:00
David Neto
0392544b7a PCH filename depends on current binary dir
Fixes #1572
2018-11-12 17:09:07 -05:00
Dan Sinclair
70661b9c08 Handle potentially uninitialized result 2018-11-12 13:56:52 -05:00
John Kessenich
d509a5eec6
Merge pull request #1569 from amdrexu/bugfix
Fix parser issue: redeclare gl_FragStencilRefARB is not supported
2018-11-12 09:01:35 -07:00
Rex Xu
7bf5fcc541 Fix parser issue: redeclare gl_FragStencilRefARB is not supported 2018-11-12 15:15:57 +08:00
John Kessenich
918caa7ee4
Merge pull request #1547 from Igalia/apinheiro/xfb-struct-assignment
Apinheiro/xfb struct assignment
2018-11-09 12:27:39 -07:00
John Kessenich
685fccd97a
Merge pull request #1565 from greg-lunarg/kg25
Add DeadBranchElim before MergeReturn in legalization.
2018-11-08 21:08:54 -07:00
GregF
68fbda9862 Add DeadBranchElim before MergeReturn in legalization.
MergeReturn now requires this or could throw an error.
2018-11-08 10:35:45 -07:00
John Kessenich
4207c97b93 Fix #1563: Corrupt token when an object macro miscalls a function macro 2018-11-07 18:25:56 -07:00
John Kessenich
4ee2f75294 PP: More clearly distinguish funtion-like and object-like macros 2018-11-07 17:22:17 -07:00
John Kessenich
0a339ec20c
Merge pull request #1564 from jeffbolznv/spirv-pch
Rename PCH macro to glslang_pch (to avoid name collision) and update to latest spirv-tools
2018-11-07 10:01:25 -07:00
Jeff Bolz
02ed310ac3 Rename PCH macro to glslang_pch (to avoid name collision) and update to latest spirv-tools 2018-11-07 09:35:31 -06:00
John Kessenich
8b782e77df Tests: Add test for ways of calling no-argument macro with (). 2018-11-06 14:51:27 -07:00
John Kessenich
1c1c2d643a
Merge pull request #1559 from jeffbolznv/glslang_pch
Use precompiled headers for some glslang projects (MSVC-only)
2018-11-02 10:24:48 -06:00
John Kessenich
cdf7a85b14
Merge pull request #1557 from nicebyte/spec-const-decorations
Add names for composite spec constants in SPIR-V
2018-11-02 10:23:22 -06:00
Grigory Dzhavadyan
4c9876b34c Add names for composite constants in SPIR-V
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
2018-11-02 00:45:12 -07:00
Jeff Bolz
22d0b7cbad Use precompiled headers for some glslang projects 2018-10-31 15:38:08 -05:00
John Kessenich
a440fbb04f
Merge pull request #1543 from alelenv/nv-raytracing-final
Add support for nv_ray_tracing final
2018-10-31 12:00:36 -06:00
Ashwin Lele
ff1783db87 Multiple features and misc fixes for final raytracing non experimental version. 2018-10-31 07:55:24 -07:00
Alejandro Piñeiro
af8c1bdb16 ParseHelper: assign xfb_offset for struct members too
If the out variable is a struct type, with a xfb_offset explicitly
assigned, the members need to get their xfb_offset assigned. This is
specially relevant, as we cannot use layout qualifiers on struct
members.
2018-10-31 10:34:44 +01:00
John Kessenich
0ac199df32
Merge pull request #1558 from Kangz/fix_build_gn
BUILD.gn: remove reference to non-existent header
2018-10-30 17:17:11 -06:00
Corentin Wallez
ab5382cf79 BUILD.gn: remove reference to non-existent header 2018-10-30 16:11:46 +01:00
John Kessenich
b2b3d81e9b
Merge pull request #1556 from Kangz/msvc
Fix MSVC warning C4065: 'default' but no 'case' labels
2018-10-29 16:16:46 -06:00
Corentin Wallez
04a2fe93d0 Fix MSVC warning C4065: 'default' but no 'case' labels
This would happen in SpvPostProcess when we don't enable AMD extensions.
2018-10-29 16:24:00 +01:00
John Kessenich
f0928b3f56 Build: Pin googletest to a version that works with visual studio 2013. 2018-10-26 11:28:37 -06:00
John Kessenich
25ed3fce0c
Merge pull request #1542 from sheredom/fix_8bit_storagebuffer
Fix 8-bit storage nearly always using the UniformAndStorageBuffer8BitAccess capability.
2018-10-26 10:27:46 -06:00
John Kessenich
8717a5d39a SPV/Standalone: Support specifying arbitrary versions of SPIR-V. 2018-10-26 10:16:47 -06:00
John Kessenich
ae63a8dfce
Merge pull request #1549 from sparmarNV/fix-SPV_NV_mesh_shader
Allow GL_NV_mesh_shader in fragment shaders for perprimitiveNV
2018-10-26 09:25:38 -06:00
Neil Henning
b6b01f067b Fix 8-bit storage nearly always using the
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
2018-10-26 14:23:41 +01:00
Sahil Parmar
38772c0434 Allow GL_NV_mesh_shader in fragment shaders for perprimitiveNV
- 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
2018-10-25 23:50:59 -07:00
John Kessenich
816bc4447c
Merge pull request #1545 from dj2/warnings
Fixup unused parameter warnings
2018-10-25 13:44:40 -06:00
John Kessenich
086febc448 PP: Fix #155: Don't give error on HLSL PP-only parsing. 2018-10-25 12:43:02 -06:00
Dan Sinclair
70f13b2ed5 Fixup unused parameter warnings
This CL removes the current parameters which are unused in order to
fixup the issued clang warnings.
2018-10-24 09:54:48 -04:00
John Kessenich
a08f465d53
Merge pull request #1534 from Kangz/no_static_lib
BUILD.gn: remove the static_library target.
2018-10-22 08:33:55 -06:00
John Kessenich
9323fd4d58 Build: Fix #1490, unused variables. 2018-10-20 18:30:57 -06:00
John Kessenich
43bb5bd188 Fix #1536: use string instead of TString for uniform-location override. 2018-10-20 17:37:19 -06:00
Corentin Wallez
5403f380a4 BUILD.gn: remove the static_library target.
This had no sources and depended on a source_set which is an invalid use
of GN because the source_set gets propagated to dependents of the
static_library instead.
2018-10-17 12:22:28 +02:00
John Kessenich
fa61e4c061
Merge pull request #1533 from amdrexu/bugfix
Fix a parse issue of imageAtomicCompSwap()
2018-10-17 01:01:00 -06:00
Rex Xu
d698ebf5f8 Fix a parse issue of imageAtomicCompSwap()
The max count of arguments is 5 when image2DMS/image2DMSArray is
specified.
2018-10-17 13:55:11 +08:00
John Kessenich
e9405d0b44
Merge pull request #1531 from jeffbolznv/workgroup_nonprivate
Fix flags.nonprivate to be true for workgroup memory, which is implicitly workgroupcoherent/nonprivate
2018-10-16 12:37:01 -06:00
Jeff Bolz
ab3c965a46 Fix flags.nonprivate to be true for workgroup memory, which is implicitly workgroupcoherent/nonprivate 2018-10-15 22:46:48 -05:00
Khronos Group Webmaster
4685f3246e
Create CODE_OF_CONDUCT.md 2018-10-10 15:48:43 -04:00
John Kessenich
c374030e80
Merge pull request #1523 from sparmarNV/fix-SPV_NV_mesh_shader
Allow redeclaration of builtin interface blocks in mesh shader
2018-10-04 23:46:21 -06:00
John Kessenich
732623e14a
Merge pull request #1524 from chaoc/master
Fix inferred output primitive for GL_NV_geometry_shader_passthrough
2018-10-04 23:41:24 -06:00
Chao Chen
07ef0e4c84 For GL_NV_geometry_shader_passthrough extension, the Inferred output primitive for ElgTriangles should be ElgTriangleStrip.
Also removed unnecessary relax for GL_NV_geometry_shader_passthrough in link validate
2018-10-04 18:39:27 -07:00
John Kessenich
2f78b9c742
Merge pull request #1515 from Igalia/more-location-command-line-options
Enhancement: add extra command line options that modifies aml
2018-10-04 18:56:39 -06:00
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