John Kessenich
e01a9bc8c0
HLSL: Plumb in HLSL parse context and keywords, and most basic HLSL parser and test.
2016-03-12 21:40:08 -07:00
Dejan Mircevski
2677d918f1
Test dead-decoration removal.
2016-03-11 12:06:41 -05:00
Lei Zhang
24e4bc99ac
Fix array out of bounds bug in processing if-else-endif macros.
...
If we are not inside an if macro, we cannot simply decrease
elsetracker.
Fixes https://github.com/KhronosGroup/glslang/issues/29 .
2016-03-09 15:11:56 -05:00
John Kessenich
f7497e289b
SPV: Issue #180 : push_constants don't have descriptor sets.
2016-03-08 21:43:14 -07:00
John Kessenich
2107c76a08
Merge pull request #192 from Qining/enable-adding-multiviewport-capability
...
SPV: Declare MultiViewport capability.
2016-03-07 21:22:54 -07:00
qining
be4f52a484
Run regression tests, update spv.420.geom.out so capability MultiViewport is declared
2016-03-07 23:05:59 -05:00
John Kessenich
3c5b1e6b31
Merge pull request #168 from amdrexu/feature2
...
SPV: Add support for memory qualifiers.
2016-03-06 15:45:11 -07:00
John Kessenich
1250c9e1bd
Merge pull request #165 from amdrexu/feature
...
SPV: Support the new OpCode - OpImageSparseRead
2016-03-06 15:43:01 -07:00
John Kessenich
f2d8a5c53f
SPV: Use heuristic to avoid geometry multi-streams when possible.
2016-03-03 22:29:11 -07:00
John Kessenich
2ac71dfb78
Merge pull request #187 from amdrexu/bugfix
...
SPV: Continue to fix the issue of bool -> uint32
2016-03-03 21:59:21 -07:00
Brian Salomon
5dc8a76265
Fix line endings in Test/100.conf.
2016-03-03 12:12:07 -05:00
Rex Xu
b4fd8d10f0
SPV: Continue to fix the issue of bool -> uint32
...
For short-circuit operator (&& and ||), the conversion is missing.
2016-03-03 14:38:51 +08:00
Rex Xu
2725323bba
SPV: Fix an issue caused by bool-to-uint32 conversion.
...
This issue is related with the commit
103bef9d74d768f0690ed53f52681baead384d1e.
2016-02-24 12:27:10 +08:00
Rex Xu
1da878f6d1
SPV: Add support for memory qualifiers.
2016-02-21 21:02:08 +08:00
John Kessenich
0967748fbc
SPV: Fix 'location' inheritance bug.
2016-02-19 12:21:50 -07:00
Rex Xu
5eafa472d3
SPV: Support the new OpCode - OpImageSparseRead
2016-02-19 22:24:03 +08:00
John Kessenich
6c292d3ba7
SPV: Implement Vulkan version of GLSL (KHR_vulkan_glsl).
2016-02-15 21:46:55 -07:00
John Kessenich
019f08fcd8
SPV: Fix issue #159 : use ExplicitLod forms for non-fragment stages.
2016-02-15 15:40:42 -07:00
John Kessenich
5d0fa9781b
SPV Capabilities: StorageImageExtendedFormats, StorageImageReadWithoutFormat, and StorageImageWriteWithoutFormat.
2016-02-15 11:57:00 -07:00
John Kessenich
5e80113939
SPV Capabilities: SampleRateShading, SparseResidency, MinLod, and ImageQuery.
2016-02-15 11:09:46 -07:00
John Kessenich
b0364dcc3e
SPV Capabilities: Image types.
...
SampledBuffer
ImageBuffer
Sampled1D
Image1D
SampledCubeArray
ImageCubeArray
SampledRect
ImageRect
InputAttachment
ImageMSArray
StorageImageMultisample
2016-02-14 17:37:30 -07:00
John Kessenich
3c52207e8a
SPV capabilities: Add int16, int64, float16, and float64.
2016-02-14 17:11:15 -07:00
John Kessenich
103bef9d74
SPV: Handle GLSL bool loads from a uniform buffer as a conversion from int -> bool.
...
SPIR-V bool is abstract; it has no bit pattern for storage with transparent memory.
OpenGL's convention is a bool in a uniform buffer is 32-bit int with non-0 being 'true'.
2016-02-08 21:41:30 -07:00
John Kessenich
ba5685a332
Semantics: Map noise*() to an operator for PureOperatorBuiltins mode.
...
Fixes issue #157 .
2016-02-02 15:59:12 -07:00
John Kessenich
32cfd49b68
SPV: RelaxedPrecision: Plumb this through the full AST->SPV translator.
2016-02-02 13:55:29 -07:00
John Kessenich
9218759ebb
SPV: Address superset of issue #151 : missing OpCapability instructions.
...
This commit adds:
CapabilityGeometryPointSize
CapabilityTessellationPointSize
CapabilityClipDistance
CapabilityCullDistance
CapabilityMultiViewport
CapabilityTransformFeedback
CapabilityGeometryStreams
CapabilityDerivativeControl
CapabilityInterpolationFunction
2016-02-01 13:45:25 -07:00
John Kessenich
9df51caba9
Fix front-end bug: Constant folding of array-of-struct index op.
...
If a constant object was both an array and a structure, and was
indexed with a constant, the arrayness was ignored and the wrong
subconstant selected. This fixes that.
2016-02-01 11:57:33 -07:00
John Kessenich
f6eae2a54a
SPV: Require desktop 140 or ES 310 or above.
2016-01-22 17:47:22 -07:00
John Kessenich
4bfeed5fe8
Semantics: Spec. changing to reflect reality of int/uint conversion for |^&.
...
This effects 4.x, where int/uint conversions are done, but not earlier.
2016-01-22 15:40:24 -07:00
John Kessenich
4889167430
SPV: Use a more accurate MemorySemanticsAllMemory mask.
2016-01-22 10:15:03 -07:00
John Kessenich
cd26144d24
SPV: the OpImageTexelPointer sample 0 should be <id> of 0, not literal 0.
2016-01-22 09:54:12 -07:00
John Kessenich
7b9fa25bad
SPV: Add recursive distrubition of 'location' across structure members.
2016-01-21 18:56:57 -07:00
John Kessenich
7a53f76d38
SPV: Add unary-matrix operations, operating at vector level.
2016-01-20 11:19:27 -07:00
Dejan Mircevski
2ab5a373d9
Add Test/spv.for-complex-condition.vert.
2016-01-20 11:54:11 -05:00
Dejan Mircevski
213bbbe4a7
Split loop header from condition testing for for/while loops.
2016-01-20 11:51:43 -05:00
Dejan Mircevski
ed55bcd9f8
Don't remove SPIR-V blocks before codegen.
...
A removed block releases its instructions, so Module::idToInstruction
suddenly contains dangling references. The original motivation for
block removal was to skip some unreachable blocks, but that's already
achieved by InReadableOrder.cpp.
Also updated stale comments.
2016-01-19 21:18:14 -05:00
Dejan Mircevski
f3c63cc359
Move continue-block to after all branches.
2016-01-19 16:56:45 -05:00
Dejan Mircevski
e7f6cac1bd
Merge branch 'topo' into loopgen-after-readable-order
2016-01-19 16:47:41 -05:00
Dejan Mircevski
38d039d063
Rework inReadableOrder() as a recursive descent.
...
Add a test for unreachable merge block.
Update test results with the new order: mainly delaying merge blocks and
removing unreachable ones.
2016-01-19 10:14:50 -05:00
Dejan Mircevski
baa55a1591
Add spv.branch-return.vert and fix inReadableOrder().
2016-01-19 10:11:34 -05:00
John Kessenich
712ecb96a2
Doubles: Add all the missing built-in double-based prototypes.
2016-01-16 20:37:43 -07:00
John Kessenich
68f1431a55
Merge pull request #121 from amdrexu/feature
...
Parser & SPV: Implement two extensions regarding GLSL sparse texture.
2016-01-15 00:52:18 -07:00
John Kessenich
e95fa5e095
Tests: Update to match previous pull request.
2016-01-13 19:04:19 -07:00
Dejan Mircevski
dba2826328
Merge branch 'master' of github.com:google/glslang into loopgen
...
Change-Id: Ie8236430bb9e30a9be2e0c1573c42183c2f4d0d4
2016-01-11 16:26:18 -05:00
Dejan Mircevski
832c65c33b
Fix back-branch target for do-while loops.
...
To ensure back branches always go to a header block, create a header
block even for !testFirst loops. Then unify common code between the
testFirst/!testFirst cases.
Generate the header-block code first, so update golden files.
Realize that certain infinite loops generate invalid SPIR-V, so put a
TODO to instead abort code generation in such cases.
Change-Id: I1e173c8f73daad186cfc666b7d72bd563ed7665d
2016-01-11 15:57:11 -05:00
Dejan Mircevski
c8fbbab419
Update .out files with new loop SPIR-V.
...
Also update breakForLoop and call builder.closeLoop() in code
generation.
Remove dead code.
Change-Id: Ic8ce5b208530f8787989ef45a2efa405f1b45310
2016-01-11 14:48:36 -05:00
Dejan Mircevski
13228243b2
Test a for loop with no body.
...
Change-Id: I5b53cc008349afad94b14500506fcab4d6e64d2e
2016-01-10 23:15:08 -05:00
Dejan Mircevski
e537b8b488
Fix unreachable-block removal.
...
Add a test for loop without a condition.
Change-Id: Idd7fc462218a84b1e745207e2975a3f2897d30a0
2016-01-10 19:37:00 -05:00
Dejan Mircevski
9c6734c8df
First cut at new loop codegen.
...
Change-Id: Id3bdf8b7a5606e7ce5d856ef225d5ddbe59a584b
2016-01-10 12:15:13 -05:00
Rex Xu
48edadfd24
Parser & SPV: Implement two extensions regarding GLSL sparse texture.
...
Implement extension "GL_ARB_sparse_texture2".
Implement extension "GL_ARB_sparse_texture_clamp".
2016-01-05 16:07:02 +08:00