- Oct 26, 2016
-
-
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.
-
- Oct 25, 2016
-
-
John Kessenich authored
Disabled MSVC 2015 compile warnings.
-
- Oct 21, 2016
-
-
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
-
- Oct 20, 2016
-
-
steve-lunarg authored
HLSL holds the compare value in a separate intrinsic arg, but the AST wants a vector including the cmp val, except in the 4-dim coord case, where it doesn't fit and is in fact a separate AST parameter. This is awkward but necessary, given AST semantics. In the process, a new vector is constructed for the combined result, but this vector was not being given the correct TType, so was causing some downstream troubles. Now it is. A similar defect existed in OpTextureBias, and has also been fixed.
-
- Oct 19, 2016
-
-
steve-lunarg authored
A need arose to use capabilities from TIntermediate during node promotion. These methods have been moved from virtual methods on the TIntermUnary and TIntermBinary nodes to methods on TIntermediate, so it is easy for them construct new nodes and so on. This is done as a separate commit to verify that no test results are changed as a result.
-
steve-lunarg authored
This PR will turn Interlocked* intrinsics using rwtexture or rwbuffer object as the first parameter into the proper OpImageAtomic* operations.
-
David Neto authored
Otherwise compilation fails when ENABLED_AMD_EXTENSIONS is off.
-
- Oct 18, 2016
-
-
steve-lunarg authored
This fixes defects as follows: 1. handleLvalue could be called on a non-L-value, and it shouldn't be. 2. HLSL allows unary negation on non-bool values. TUnaryOperator::promote can now promote other types (e.g, int, float) to bool for this op. 3. HLSL allows binary logical operations (&&, ||) on arbitrary types, similar (2). 4. HLSL allows mod operation on arbitrary types, which will be promoted. E.g, int % float -> float % float.
-
- Oct 16, 2016
-
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
VS2010 compile fixes
-
John Kessenich authored
HLSL: phase 3 of rwtexture support: add sub-vec4 capabilities
-
John Kessenich authored
Use pthread_mutex for global lock on Linux.
-
John Kessenich authored
SPV: Add missing extension declarations for certain AMD extensions.
-
John Kessenich authored
HLSL: allow multi-dimensional arrays
-
- Oct 15, 2016
-
-
Josh Gargus authored
-
steve-lunarg authored
This uses the Unknown storage format, instead of deducing the format from the texture declaration type.
-
steve-lunarg authored
Also makes a (correct) test change for global -> temp vars.
-
steve-lunarg authored
This PR sets the TQualifier layoutFormat according to the HLSL image type. For instance: RWTexture1D <float2> g_tTex1df2; becomes ElfRg32f. Similar on Buffers, e.g, Buffer<float4> mybuffer; The return type for image and buffer loads is now taken from the storage format. Also, the qualifier for the return type is now (properly) a temp, not a global.
-
- Oct 14, 2016
-
-
Rex Xu authored
-
- Oct 13, 2016
-
-
John Kessenich authored
HLSL: phase 2: add operator[]
-
John Kessenich authored
Check for out-of-range bindings during IO mapping.
-
steve-lunarg authored
All the underpinnings are there; this just parses multiple array dimensions and passes them through to the existing mechanisms. Also, minor comment fixes, and add a new test for multi-dim arrays.
-
baldurk authored
-
baldurk authored
* This avoids an internal compile error on VS2010 possibly related to std::enable_if use.
-
baldurk authored
-
baldurk authored
-
baldurk authored
-
baldurk authored
-
baldurk authored
-
baldurk authored
-
baldurk authored
-
baldurk authored
-