- Oct 16, 2017
-
-
John Kessenich authored
Also, rationalized this to generally make it safer and more readable. It could use a more modern approach, at some point...
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
-
- Oct 13, 2017
-
-
John Kessenich authored
Fixes #1088.
-
- Oct 11, 2017
-
-
John Kessenich authored
HLSL: nonfunctional: add helper access methods to TAttributeMap
-
- Oct 10, 2017
-
-
John Kessenich authored
Set cmake-policy CMP0048 to NEW
-
John Kessenich authored
HLSL: nonfunctional: rename setId -> switchId, add comment
-
John Kessenich authored
Add getAsLoopNode() method for TIntermLoop
-
LoopDawg authored
There was some code replication around getting string and integer values out of an attribute map. This adds new methods to the TAttributeMap class to encapsulate some accessor details.
-
Tim Diekmann authored
-
- Oct 08, 2017
-
-
He Dejing authored
follow local conventions of spaces
-
- Oct 07, 2017
-
-
LoopDawg authored
Method rename, add comment about its intended use. No test diffs.
-
John Kessenich authored
Fixes #1091.
-
John Kessenich authored
-
John Kessenich authored
Only track variables in the global scope
-
John Kessenich authored
The semantics differ between GLSL/HLSL and SPIR-V. Translate between these.
-
John Kessenich authored
-
- Oct 06, 2017
-
-
Sebastian Tafuri authored
-
Sebastian Tafuri authored
-
John Kessenich authored
HLSL: split textures used for both shadow and non-shadow modes
-
Sebastian Tafuri authored
-
LoopDawg authored
A single texture can statically appear in code mixed with a shadow sampler and a non-shadow sampler. This would be create invalid SPIR-V, unless one of them is provably dead. The previous detection of this happened before DCE, so some shaders would trigger the error even though they wouldn't after DCE. To handle that case, this PR splits the texture into two: one with each mode. It sets "needsLegalization" (if that happens for any texture) to warn that this shader will need post-compilation legalization. If the texture is only used with one of the two modes, behavior is as it was before.
-
John Kessenich authored
-
- Oct 04, 2017
-
-
John Kessenich authored
HLSL: Fix #954: Track/access subsets of flattened multi-level aggrega…
-
John Kessenich authored
Works in conjuction with d1be7545 to represent and modify a partially dereferenced multi-level flattened aggregate.
-
John Kessenich authored
HLSL: Fix crash when flattening both side of assignement simultaneously.
-
- Oct 03, 2017
-
-
Unknown authored
-
- Oct 02, 2017
-
-
John Kessenich authored
HLSL: add subpass input types and methods
-
LoopDawg authored
Add support for Subpass Input proposal of issue #1069. Subpass input types are given as: layout(input_attachment_index = 1) SubpassInput<float4> subpass_f; layout(input_attachment_index = 2) SubpassInput<int4> subpass_i; layout(input_attachment_index = 3) SubpassInput<uint4> subpass_u; layout(input_attachment_index = 1) SubpassInputMS<float4> subpass_ms_f; layout(input_attachment_index = 2) SubpassInputMS<int4> subpass_ms_i; layout(input_attachment_index = 3) SubpassInputMS<uint4> subpass_ms_u; The input attachment may also be specified using attribute syntax: [[vk::input_attachment_index(7)]] SubpassInput subpass_2; The template type may be a shorter-than-vec4 vector, but currently user structs are not supported. (An unimplemented error will be issued). The load operations are methods on objects of the above type: float4 result = subpass_f.SubpassLoad(); int4 result = subpass_i.SubpassLoad(); uint4 result = subpass_u.SubpassLoad(); float4 result = subpass_ms_f.SubpassLoad(samp); int4 result = subpass_ms_i.SubpassLoad(samp); uint4 result = subpass_ms_u.SubpassLoad(samp); Additionally, the AST printer could not print EOpSubpass* nodes. Now it can. Fixes #1069
-
- Sep 30, 2017
-
-
John Kessenich authored
-
John Kessenich authored
- support C++11 style brackets [[...]] - support namespaces [[vk::...]] - support these on parameter declarations in functions - support location, binding/set, input attachments
-
- Sep 29, 2017
-
-
John Kessenich authored
-
John Kessenich authored
Remove opaque workarounds
-
GregF authored
-
John Kessenich authored
-
John Kessenich authored
Also, remove assumption that if something is opaque that it must be in the UniformConstant storage class. This allows function declarations to know all parameters will be in the Function storage class.
-
John Kessenich authored
This assumes it will be combined with optimizing transforms that eliminate assignments to opaques.
-
John Kessenich authored
HLSL: force textures to shadow modes from combined samplers
-
- Sep 28, 2017
-
-
LoopDawg authored
Texture shadow mode must match the state of the sampler they are combined with. This change does that, both for the AST and the symbol table. Note that the texture cannot easily be *created* the right way, because this may not be known at that time. Instead, the texture is subsequently patched. This cannot work if a single texture is used with both a shadow and non-shadow sampler, so that case is detected and generates an error. This is permitted by the HLSL language, however. See #1073 discussion. Fixed one test source that was using a texture with both shadow and non-shadow samplers.
-