- Apr 12, 2017
-
-
John Kessenich authored
-
- Apr 11, 2017
-
-
John Kessenich authored
-
John Kessenich authored
-
- Apr 10, 2017
-
-
John Kessenich authored
HLSL: fix return type for isfinite
-
steve-lunarg authored
The prior decomposition of isfinite was not setting the return type on the sequence node. (Sequence was used because there's an internal temporary to avoid the complex rvalue problem).
-
- Apr 08, 2017
-
-
John Kessenich authored
Implement the extension SPV_KHR_16bit_storage
-
- Apr 07, 2017
-
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
HLSL: cast bracket dereference index to int type if not.
-
Rex Xu authored
-
steve-lunarg authored
HLSL can index arrays using operator[] with non-integer types, and inserts a conversion to a uint if needed.
-
- Apr 06, 2017
-
-
John Kessenich authored
-
John Kessenich authored
HLSL: allow non-vec3 tessellation coordinate declarations
-
- Apr 05, 2017
-
-
John Kessenich authored
Corresponds to the EShMsgHlslOffsets flag in messages. Works for both GLSL and HLSL.
-
steve-lunarg authored
HLSL requires vec2 tessellation coordinate declarations in some cases (e.g, isoline topology), where SPIR-V requires the TessCoord qualified builtin to be a vec3 in all cases. This alters the IO form of the variable to be a vec3, which will be copied to the shader's declared type if needed. This is not a validation; the shader type must be correct.
-
- Apr 04, 2017
-
-
John Kessenich authored
-
-
Juan Lopez authored
C++11 features remove the dependencies from OS specific code. Changes: - Making WorkList class to have its own mutex instead of the OS specific global one. The new mutex is the one from std library. The OS specific code is also removed. - Using the C++11 std library to handle threads in StandAlone application and enabling concurrent processing on non-windows platforms. - converting the global variable Worklist into local variable workList.
-
John Kessenich authored
-
John Kessenich authored
Somewhat complex due to recognizing a general scalar, but not replicating it for each member to avoid side effects.
-
John Kessenich authored
HLSL: Decompose OpIsFinite to avoid capability restrictions
-
John Kessenich authored
Improves foundation for adding scalar casts. Makes handle/make names more sane, better commented, uses more precise subclass typing, and removes mutual recursion between converting initializer lists and making constructors.
-
John Kessenich authored
HLSL: Support InputPatch variables in patch constant functions
-
steve-lunarg authored
OpIsFinite is not available everywhere: decompose isfinite to !isinf && !isnan.
-
steve-lunarg authored
Previously, patch constant functions only accepted OutputPatch. This adds InputPatch support, via a pseudo-builtin variable type, so that the patch can be tracked clear through from the qualifier.
-
- Apr 03, 2017
-
-
John Kessenich authored
HLSL: fix GS to work with EP wrapping
-
steve-lunarg authored
The prior implementation of GS did not work with the new EP wrapping architecture. This fixes it: the Append() method now looks up the actual output rather than the internal sanitized temporary type, and writes to that.
-
John Kessenich authored
-
John Kessenich authored
HLSL: handle PCF input to DS in arbitrary argument position
-
steve-lunarg authored
In the hull shader, the PCF output does not participate in an argument list, so has no defined ordering. It is always put at the end of the linkage. That means the DS input reading PCF data must be be at the end of the DS linkage as well, no matter where it may appear in the argument list. This change makes sure that happens. The detection is by looking for arguments that contain tessellation factor builtins, even as a struct member. The whole struct is taken as the PCF output if any members are so qualified.
-
John Kessenich authored
Refactor TType::contains* methods (nonfunctional)
-
- Apr 02, 2017
-
-
steve-lunarg authored
There were many (~8) different places in TType which all knew how to traverse the struct/type hierarchy. There's a need to add another, but I didn't want to duplicate the traversal code again. This is a small refactoring which passes a predicate to a single traverse-and-test method. That also shortens all the containsSomething() methods from 9 lines of body to 1. There are no test differences: it's nonfunctional.
-
- Apr 01, 2017
-
-
John Kessenich authored
HLSL: set combined flag false for Buffer<>
-
- Mar 31, 2017
-
-
steve-lunarg authored
-
John Kessenich authored
This reverts commit 1dd65ca3, reversing changes made to 4960baaf.
-
John Kessenich authored
HLSL: support per control point patch const fn invocation
-
John Kessenich authored
HLSL: Fix #804: crash on empty sequence node passed to intrinsic expansions
-
steve-lunarg authored
-
steve-lunarg authored
The SPIR-V generator had assumed tessellation modes such as primitive type and vertex order would only appear in tess eval (domain) shaders. SPIR-V allows either, and HLSL allows and possibly requires them to be in the hull shader. This change: 1. Passes them through for either tessellation stage, and, 2. Does not set up defaults in the domain stage for HLSl compilation, to avoid conflicting definitions.
-
John Kessenich authored
HLSL: allow length() on scalars
-