- 22 Feb, 2017 1 commit
-
-
John Kessenich authored
HLSL: implement 4 (of 6) structuredbuffer types
-
- 21 Feb, 2017 3 commits
-
-
steve-lunarg authored
This is a partial implemention of structurebuffers supporting: * structured buffer types of: * StructuredBuffer * RWStructuredBuffer * ByteAddressBuffer * RWByteAddressBuffer * Atomic operations on RWByteAddressBuffer * Load/Load[234], Store/Store[234], GetDimensions methods (where allowed by type) * globallycoherent flag But NOT yet supporting: * AppendStructuredBuffer / ConsumeStructuredBuffer types * IncrementCounter/DecrementCounter methods Please note: the stride returned by GetDimensions is as calculated by glslang for std430, and may not match other environments in all cases.
-
John Kessenich authored
Add override where needed by clang++
-
David Neto authored
Otherwise we get an error when we have both -Werror and -Winconsistent-missing-override. This is required for building with NDK r14 betas
-
- 18 Feb, 2017 4 commits
-
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
Implement GL_EXT_shader_image_load_formatted
-
John Kessenich authored
HLSL - Support for SV_GroupIndex
-
- 17 Feb, 2017 7 commits
-
-
Jason Ekstrand authored
-
Graham Wihlidal authored
-
Graham Wihlidal authored
-
Graham Wihlidal authored
Update from master
-
John Kessenich authored
Added --vn option to generate a C header file containing a variable a…
-
John Kessenich authored
Fix mismatched doc string for SPV_KHR_subgroup_vote
-
Maciej Jesionowski authored
Text for opcodes OpSubgroupAllKHR and OpSubgroupAnyKHR was swapped.
-
- 15 Feb, 2017 2 commits
-
-
John Kessenich authored
Implement NVX_multiview_per_view_attributes
-
Flavio authored
-
- 14 Feb, 2017 1 commit
-
-
chaoc authored
-
- 13 Feb, 2017 1 commit
-
-
John Kessenich authored
-
- 11 Feb, 2017 2 commits
-
-
John Kessenich authored
Add basic HS/DS implementation.
-
John Kessenich authored
-
- 10 Feb, 2017 3 commits
-
-
steve-lunarg authored
This obsoletes WIP PR #704, which was built on the pre entry point wrapping master. New version here uses entry point wrapping. This is a limited implementation of tessellation shaders. In particular, the following are not functional, and will be added as separate stages to reduce the size of each PR. * patchconstantfunctions accepting per-control-point input values, such as const OutputPatch <hs_out_t, 3> cpv are not implemented. * patchconstantfunctions whose signature requires an aggregate input type such as a structure containing builtin variables. Code to synthesize such calls is not yet present. These restrictions will be relaxed as soon as possible. Simple cases can compile now: see for example Test/hulsl.hull.1.tesc - e.g, writing to inner and outer tessellation factors. PCF invocation is synthesized as an entry point epilogue protected behind a barrier and a test on invocation ID == 0. If there is an existing invocation ID variable it will be used, otherwise one is added to the linkage. The PCF and the shader EP interfaces are unioned and builtins appearing in the PCF but not the EP are also added to the linkage and synthesized as shader inputs. Parameter matching to (eventually arbitrary) PCF signatures is by builtin variable type. Any user variables in the PCF signature will result in an error. Overloaded PCF functions will also result in an error. [domain()], [partitioning()], [outputtopology()], [outputcontrolpoints()], and [patchconstantfunction()] attributes to the shader entry point are in place, with the exception of the Pow2 partitioning mode.
-
John Kessenich authored
-
John Kessenich authored
-
- 09 Feb, 2017 5 commits
-
-
John Kessenich authored
SPV: Emit op select
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
Also, ensures it has a type, no disallowed side effects, or performance trade offs.
-
John Kessenich authored
HLSL: Wrap entry-point; needed to write 'in' args, and support 'inout' args
-
- 08 Feb, 2017 1 commit
-
-
John Kessenich authored
This enables the IO type mapping to work transparently for typedefs.
-
- 07 Feb, 2017 10 commits
-
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
Previously, this was done recursively, per object, and the nonIO version was cached. This reverses both those approaches.
-
John Kessenich authored
-
steve-lunarg authored
This removes pervertex output blocks, in favor of using only loose variables. The pervertex blocks are not required and were only partly implemented, and were adding some complication. This change goes with wrap-entry-point.
-
John Kessenich authored
-
steve-lunarg authored
Structs are split to remove builtin members to create valid SPIR-V. In this process, an outer structure array dimension may be propegated onto the now-removed builtin variables. For example, a mystruct[3].position -> position[3]. The copy between the split and unsplit forms would handle this in some cases, but not if the array dimension was at different levels of aggregate. It now does this, but may not handle arbitrary composite types. Unclear if that has any semantic meaning for builtins though.
-
John Kessenich authored
This also removes an no longer needed makeTemporary() and rationalizes makeTypeNonIo()'s interface.
-
steve-lunarg authored
This introduces parallel types for IO-type containing aggregates used as non-entry point function parameters or return types, or declared as variables. Further uses of the same original type will share the same sanitized deep structure. This is intended to be used with the wrap-entry-point branch.
-
John Kessenich authored
Previously, a type graph would turn into a type tree. That is, a deep node that is shared would have multiple copies made. This is important when creating IO and non-IO versions of deep types.
-