- 15 Nov, 2016 1 commit
-
-
John Kessenich authored
-
- 14 Nov, 2016 5 commits
-
-
John Kessenich authored
Add UAV (image) binding offset and HLSL register class support
-
John Kessenich authored
SPV: The execution scope for barriers should be Workgroup.
-
chrgau01@arm.com authored
-
John Kessenich authored
SPV: Fix unreferenced variable warning with AMD_EXTENSIONS disabled.
-
John Kessenich authored
HLSL: allow promotion from 1-vector types to scalars, e.g, float<-float1
-
- 13 Nov, 2016 1 commit
-
-
steve-lunarg authored
Previously, an error was thrown when assigning a float1 to a scalar float, or similar for other basic types. This allows that. Also, this allows calling functions accepting scalars with float1 params, so for example sin(float1) will work. This is a minor change in HlslParseContext::findFunction().
-
- 11 Nov, 2016 2 commits
-
-
John Kessenich authored
HLSL: Allow expressions in attributes
-
steve-lunarg authored
For example: [numthreads(2+2, 2*3, (1+FOO)*BAR)] This will result in a thread count (4, 6, 8).
-
- 09 Nov, 2016 1 commit
-
-
Jamie Madill authored
-
- 05 Nov, 2016 1 commit
-
-
John Kessenich authored
Rationalizes the entire tracking of the linker object nodes, effecting GLSL, HLSL, and SPIR-V, to allow tracked objects to be fully edited before their type snapshot for linker objects. Should only effect things when the rest of the AST contained no reference to the symbol, because normal AST nodes were not stale. Also will only effect such objects when their types were edited.
-
- 01 Nov, 2016 7 commits
-
-
steve-lunarg authored
This PR adds: 1. The "u" register class for RW* objects. 2. --shift-image-bindings (== --sib), analogous to --shift-texture-bindings etc. 3. Case insensitive reg classes. 4. Tests for above.
-
John Kessenich authored
Fix build warnings in iomapper.cpp, re-indent to glslang standard
-
steve-lunarg authored
This has no functional changes.
-
John Kessenich authored
HLSL: implement numthreads for compute shaders
-
John Kessenich authored
HLSL -> Spir-V: Resource mapping handler
-
John Kessenich authored
HLSL: Add min*{float,int,uint} types -
John Kessenich authored
Use std::atoi instead of std::stoi
-
- 31 Oct, 2016 3 commits
-
-
David Neto authored
Some Android cross cross-compilers don't have std::stoi. E.g. i686-linux-android-g++ from Android NDK r10e don't have std::stoi.
-
steve-lunarg authored
These HLSL types are guaranteed to have at least the given number of bits, but may have more. min{16,10}float is mapped to EbtFloat at medium precision -> SPIRV RelaxedPrecision min{16,12}int and min16uint are mapped to mediump -> SPIR-V RelaxedPrecision -
steve-lunarg authored
This PR adds handling of the numthreads attribute for compute shaders, as well as a general infrastructure for returning attribute values from acceptAttributes, which may be needed in other cases, e.g, unroll(x), or merely to know if some attribute without params was given. A map of enum values from TAttributeType to TIntermAggregate nodes is built and returned. It can be queried with operator[] on the map. In the future there may be a need to also handle strings (e.g, for patchconstantfunc), and those can be easily added into the class if needed. New test is in hlsl.numthreads.comp.
-
- 29 Oct, 2016 1 commit
-
-
John Kessenich authored
Add explicit lambda return types, for compilers without C++14 support
-
- 28 Oct, 2016 2 commits
- 27 Oct, 2016 4 commits
-
-
John Kessenich authored
silence -Wunknown-pragmas warnings on gcc
-
John Kessenich authored
HLSL: allow component-wise operations for logical || and &&.
-
John Kessenich authored
HLSL: Enable component-wise vector comparisons from operators
-
John Kessenich authored
GLSL: apply unused variable
-
- 26 Oct, 2016 2 commits
-
-
steve-lunarg authored
HLSL || and && can operate component-wise.
-
steve-lunarg authored
This PR only changes a few lines of code, but is subtle. In HLSL, comparison operators (<,>,<=,>=,==,!=) operate component-wise when given a vector operand. If a whole vector equality or inequality is desired, then all() or any() can be used on the resulting bool vector. This PR enables this change. Existing shape conversion is used when one of the two arguments is a vector and one is a scalar. Some existing HLSL tests had assumed == and != meant vector-wise instead of component-wise comparisons. These tests have been changed to add an explicit any() or all() to the test source. This verifably does not change the final SPIR-V binary relative to the old behavior for == and !=. The AST does change for the (now explicit, formerly implicit) any() and all(). Also, a few tests changes where they previously had the return type wrong, e.g, from a vec < vec comparison in hlsl.shapeConv.frag. Promotion of comparison opcodes to vector forms (EOpEqual->EOpVectorEqual) is handled in promoteBinary(), as is setting the proper vector type of the result. EOpVectorEqual and EOpVectorNotEqual are now accepted as either aggregate or binary nodes, similar to how the other operators are handled. Partial support already existed for this: it has been fleshed out in the printing functions in intermOut.cpp. There is an existing defect around shape conversion with 1-vectors, but that is orthogonal to this PR and not addressed by it.
-
- 25 Oct, 2016 1 commit
-
-
John Kessenich authored
Disabled MSVC 2015 compile warnings.
-
- 21 Oct, 2016 9 commits
-
-
steve-lunarg authored
-
Jeremy Hayes authored
I happened upon numArgs while hunting for unused variables. I suspect the intent was to apply it as shown in this patch. However, I am not a compiler dude. Someone more appropriate should grok this change.
-
Johannes van Waveren authored
-
Johannes van Waveren authored
-
Johannes van Waveren authored
-
John Kessenich authored
HLSL: fix defect in EOpMethodSampleCmp* texture decomposition
-
John Kessenich authored
HLSL: phase 4 of RWTexture support: add image atomics
-
John Kessenich authored
HLSL: Fix unary and binary operator type conversion issues
-
John Kessenich authored
SPV: Add missing guard to code that uses AMD extensions
-