- 18 Feb, 2017 1 commit
-
-
John Kessenich authored
HLSL - Support for SV_GroupIndex
-
- 17 Feb, 2017 6 commits
-
-
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 11 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.
-
John Kessenich authored
This needs some render testing, but is destined to be part of master. This also leads to a variety of other simplifications. - IO are global symbols, so only need one list of linkage nodes (deferred) - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized - several parts of splitting/flattening are now localized
-
- 06 Feb, 2017 1 commit
-
-
Flavio authored
Added --vn option to generate a C header file containing a variable assigned to the hex representation of the shader. This is a standard feature on Microsoft's HLSL compiler and it allows developers to include pre-compiled shaders directly into the code. This option enables "Hex output", so it is NOT required to specify -x as well. The output file name is preserved, so no ".h" extension is added. If you want the output file to have ".h" extension then you have to specify it on the output file name. The generated header file uses the "#pragma once" pragma to avoid multiple inclusions.
-
- 02 Feb, 2017 3 commits
-
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
SPV: Emit names of specialization constants, fixes #710
-
- 31 Jan, 2017 1 commit
-
-
Endre Oma authored
-
- 30 Jan, 2017 2 commits
-
-
John Kessenich authored
Install headers
-
Benjamin Saunders authored
This enables the vulkan loader to be built against an installed glslang.
-