Mark Adams
c11e95f6e5
Various build fixes when using newer GCC versions with warnings enabled
...
Encountered with GCC-4.7.3 in a build environment where warnings are enabled
and treated as errors.
2015-10-26 12:38:46 -04:00
Mark Adams
4123a04ca9
Replace sprintf() usage with snprintf()
...
This fixes compilation in build environments with stricter warnings enabled
2015-10-15 16:16:52 -04:00
John Kessenich
fa540d1414
SPV: Remove accidental inclusion of a test.
2015-10-15 13:55:18 -06:00
John Kessenich
7c1aa1026e
SPV: Implement short circuiting of && and || when emitting SPIR-V.
2015-10-15 13:50:48 -06:00
John Kessenich
da581a2b95
GL_ARB_shader_draw_parameters: From @amdrexu, implement extension.
2015-10-14 14:10:30 -06:00
John Kessenich
b5c046e58b
Front-end: Fix missing tessellation shader built-in qualifiers.
...
The gl_in array has a special path due to context-specific
gl_MaxPatchVertices, making the code out of order for tagging built-ins.
This commit moves the tagging to the correct location.
This also fixes issue #80 .
2015-10-13 17:23:10 -06:00
John Kessenich
e690332c3c
SPV: Add modes for spacing, depth, depth replacing, winding, and point mode.
2015-10-13 16:29:02 -06:00
John Kessenich
716312771c
SPV constants and constOffsets completion: isConstant() and disassembler to see results.
...
Expand to full isConstant() implementation.
Fix disassembler to generate texture look-up masks.
2015-10-13 10:45:22 -06:00
Rex Xu
19c6e5919f
Fix an issue related with texelFetchOffset
2015-10-12 17:02:21 +08:00
John Kessenich
820a22fcc8
Give error for calling a user-defined function at global scope.
2015-10-06 13:11:38 -06:00
John Kessenich
894c1c109f
Add another frexp() test.
2015-10-05 10:00:27 -06:00
John Kessenich
eb505e4262
Allow future keywords to be accessed as members in a struct.
...
This fixes a bug where a token that could be a keyword in one version
is not a keyword in another version, but treated like a non-member after
a "." dereference.
2015-10-02 15:01:53 -06:00
John Kessenich
6373574b13
Front-end: Fix: Cubemap arrays only use 3-component coord when accessed as an image.
...
4 components are needed when used a texture, but not an image, which multiplies
layers and faces into the same coordinate. This fixes it from using 4 everywhere,
to only using 4 for textures and 3 for images.
2015-10-01 12:40:48 -06:00
John Kessenich
3cd0024ea8
GLSL front-end: Check recursively for opaque types in a block; these are all illegal.
2015-09-30 18:57:47 -06:00
John Kessenich
ee21fc9081
SPV: Fix missing 'Member' operand to OpArrayLength.
2015-09-21 21:50:29 -06:00
John Kessenich
142d7780a4
SPV 31: Remove obsolete and unused ../SPIRV/GLSL450Lib.h.
2015-09-21 10:39:20 -06:00
John Kessenich
f82c661462
SPV: Remove old Rev. 30 header spirv.h (glslang has been using Rev. 31 spirv.hpp).
2015-09-21 08:59:47 -06:00
John Kessenich
b9cd3996c7
PP: Restore a line of code deleted by commit bb63bd5e3792455b77ce93e471158bed0cc884f0.
2015-09-16 18:23:20 -06:00
John Kessenich
56bab0483a
SPV: Minor corrections to previous big merge for images and atomics.
2015-09-16 11:42:16 -06:00
Rex Xu
6b86d496c2
Add new test case for image functions and fix issues caught by this test
2015-09-16 17:48:22 +08:00
Rex Xu
bba5c80957
Merge master branch from upstream
2015-09-16 13:20:37 +08:00
Rex Xu
04db3f5aa4
Fix issues from review comments and those relevant to texelFetch
2015-09-16 11:44:02 +08:00
John Kessenich
2398b3a458
Full stack: implement textureQueryLod(*) and textureQueryLevels(*).
2015-09-15 19:38:56 -06:00
John Kessenich
ef0118b26e
Update the Todo.txt file with recent AEP, 3.1, and textureQuery progress.
2015-09-15 19:17:30 -06:00
John Kessenich
3e60a6ff13
SPV OpAtomicCompareSwap: Generate correct operand order and number of operands.
2015-09-14 22:45:16 -06:00
John Kessenich
e770b3e6cf
SPV return from main: Simplify a legacy design such returns are not jumps to exit block.
...
Structured control-flow rules allow leaving the middle of a construct through
a return, but not through a jump to a block that does a return.
Addresses issue #58 .
2015-09-14 21:08:58 -06:00
John Kessenich
5f5b205ce9
Bump up layout(location) limit from 62 to 4094, to handle bigger uniform locations.
2015-09-13 21:03:33 -06:00
Rex Xu
30f9258d5e
Merge master branch from upstream
2015-09-14 10:38:56 +08:00
John Kessenich
c9a808319a
SPV arrays: Add support for runtime-sized array types and arrays of arrays.
...
This includes run-time block.member.length() (OpArrayLength).
2015-09-13 10:18:19 -06:00
John Kessenich
9312269d09
Front-end Arrays of arrays: Add ES-specific checks and tests. AoA should be quite close to done now.
2015-09-11 15:25:38 -06:00
John Kessenich
a06bd527ca
SPV: Correct generation of transparent offsets for implicitly assigned offsets.
2015-09-11 15:15:23 -06:00
John Kessenich
31ed4830d1
SPV: Only decorate array and matrix strides for transparent types requiring explicit layouts.
2015-09-09 17:51:38 -06:00
John Kessenich
874b1f8858
Add test results for merge pull request #69 .
2015-09-09 16:36:37 -06:00
John Kessenich
79807811b5
README: Update testing section.
2015-09-09 16:34:13 -06:00
John Kessenich
358dd560c5
Update test results for pull request #68 , SPIRV: Decorate matrices and arrays with their strides.
2015-09-09 16:19:15 -06:00
John Kessenich
68e1c454da
Merge pull request #60 from xorgy/no-define-defined
...
Preprocessor: 'defined' cannot be used as a macro name in #define or #undef.
2015-09-09 15:45:23 -06:00
John Kessenich
ebb7bf37fd
Remove executables from the source tree. This addresses issue #48 .
2015-09-09 15:33:41 -06:00
Rex Xu
fc6189197d
SPIRV: Add the support of missing image functions #72
2015-09-09 16:42:49 +08:00
Rex Xu
0c81156c2d
SPIRV: Fix a comment issue
2015-09-06 14:55:45 +08:00
John Kessenich
c8b2e36f52
Implement GL_KHR_blend_equation_advanced.
2015-08-30 05:43:51 -06:00
Aaron Hamilton
7d3b73bfff
'defined' cannot be used as a macro name in #define or #undef.
2015-08-29 23:15:13 +00:00
John Kessenich
d6c37b190b
GL_OES_shader_multisample_interpolation: Include scalar swizzles as valid for interpolateAt*.
2015-08-22 16:54:35 -06:00
John Kessenich
0fc4338f3e
Implement GL_OES_shader_multisample_interpolation, as well as core desktop versions of it.
2015-08-22 13:11:12 -06:00
John Kessenich
ba01ebd5ba
Link-check fix: Don't include built-in variables in the fragment output ES rule:
...
"No layout(location=) is required if there is only one output" should not count
built-in variables like gl_SampleMask. This is fixed.
2015-08-21 09:19:52 -06:00
John Kessenich
78258d3d40
Fix misspelled EOpFrexp and EOpLdexp.
2015-08-19 17:30:12 -06:00
John Kessenich
fc51d284aa
Backward incompatible: Turn on PureOperatorBuiltins: use only enum-based built-in functions in the AST.
...
If this breaks your AST consumer, best is to modify it to test
against the enum values instead of doing string comparisons on
built-in function names. This is the reason the change was made.
If you need the old behavior, you should be able to get it back by changing
PureOperatorBuiltins to be false instead of true. This path will work for
a while, but is marked deprecated.
Also, the old behavior is tagged as release 2.4.
2015-08-19 13:43:25 -06:00
John Kessenich
a32d8f620d
Create last version before moving to pure enums for built-in functions.
2015-08-19 12:13:44 -06:00
John Kessenich
81639827d5
More preparation for pure built-in functions as enums: Add texturing op cracker.
2015-08-19 10:46:52 -06:00
John Kessenich
ef676b0a59
Front-end "pure" built-in TOperator: Finish adding full support, but still turned off.
...
This is to avoid all need to do text comparison of built-in function names
when consuming the AST. All built-in functions get enumerants.
Will want to turn on soon. See PureOperatorBuiltins. See issue #8 .
2015-08-18 23:17:15 -06:00
John Kessenich
e88217b7d8
Add more TOperator: fma/frexp/ldexp, AddCarry/SubBorrow/MulExtended/Bit*/Find*, (un)pack4x8/2x32, ftransform.
...
Also corrects some existing ones missing the "Op" part of their name.
2015-08-18 22:27:23 -06:00