John Kessenich
0793988697
Merge pull request #707 from KhronosGroup/emit-opSelect
...
SPV: Emit op select
2017-02-08 17:33:10 -07:00
John Kessenich
f8d0d8c2b8
Address issue #718 . Should change which warning is generated, hopefully to a better one.
2017-02-08 17:31:03 -07:00
John Kessenich
8e6c6cef6a
SPV: Implement specialization constants for ?:.
2017-02-08 17:07:07 -07:00
John Kessenich
433e9ff896
SPV: Emit OpSelect when a selection node is simple enough.
...
Also, ensures it has a type, no disallowed side effects,
or performance trade offs.
2017-02-08 17:03:13 -07:00
John Kessenich
509177d136
Merge pull request #685 from KhronosGroup/wrap-entry-point
...
HLSL: Wrap entry-point; needed to write 'in' args, and support 'inout' args
2017-02-08 17:01:44 -07:00
John Kessenich
dd40260b63
HLSL: don't do a deepCopy() for typedef, as we still want to share the type graph.
...
This enables the IO type mapping to work transparently for typedefs.
2017-02-08 13:59:30 -07:00
John Kessenich
65ee230f1c
HLSL: Add tests and refine what decorations are passed through per stage/in/out.
2017-02-06 23:13:16 -07:00
John Kessenich
bf47286fe7
HLSL: Move to fine-grained control for defining input/output/uniform IO types.
2017-02-06 23:13:16 -07:00
John Kessenich
727b374fd3
HLSL: Build IO types bottom up, as parsed, and cache the original (IO).
...
Previously, this was done recursively, per object, and the nonIO version
was cached. This reverses both those approaches.
2017-02-06 23:00:51 -07:00
John Kessenich
88c4464df5
HLSL: Have loose uniforms also go through the makeTypeNonIo() path.
2017-02-06 23:00:51 -07:00
steve-lunarg
2c5ab9c8fc
HLSL: remove pervertex output blocks
...
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.
2017-02-06 23:00:51 -07:00
John Kessenich
fbb58a4e0b
Build: Fix Linux for older compiler: Use TMap instead of TUndorderedMap.
2017-02-06 23:00:51 -07:00
steve-lunarg
ec712ebea1
HLSL: fix copies between arrays of structs of builtins, and arrayed builtins.
...
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.
2017-02-06 23:00:51 -07:00
John Kessenich
abd8dca86d
HLSL: Make the entry-point shadow function have non-IO params and return.
...
This also removes an no longer needed makeTemporary() and rationalizes
makeTypeNonIo()'s interface.
2017-02-06 22:58:32 -07:00
steve-lunarg
5d3023af03
HLSL: Type sanitization: create non-IO types for var decl and fn param/ret
...
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.
2017-02-06 22:58:32 -07:00
John Kessenich
0fe106afd2
AST: Have type deepCopy() preserve type graphs as graphs.
...
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.
2017-02-06 22:58:32 -07:00
John Kessenich
02467d8d94
HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.
...
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
2017-02-06 22:58:32 -07:00
Flavio
aea3c890d3
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.
2017-02-06 11:46:35 -08:00
John Kessenich
18adbdbbb8
Resolve issue #700 : allow initializers on struct members.
2017-02-02 15:16:20 -07:00
John Kessenich
32fd5d26e3
Memory/constructor/warning clean-up. Addresses issue #705 .
2017-02-02 14:55:02 -07:00
John Kessenich
f1aeac8944
Merge pull request #711 from eoma/fix-friendly-specialization-name
...
SPV: Emit names of specialization constants, fixes #710
2017-02-02 14:26:06 -07:00
Endre Oma
ad58d45437
SPV: Emit names of specialization constants
2017-01-31 21:16:17 +01:00
John Kessenich
7e134cdfbe
Merge pull request #706 from Ralith/install-headers
...
Install headers
2017-01-29 20:44:31 -07:00
Benjamin Saunders
5a074532af
Install headers
...
This enables the vulkan loader to be built against an installed glslang.
2017-01-29 17:46:44 -08:00
John Kessenich
62c3e400cf
Fix bug from PR #678 : NV_EXTENSIONS deleted implicit array sizing.
2017-01-26 22:03:57 -07:00
John Kessenich
82e0e58993
Fix issue #693 . Ternary operator on void type.
2017-01-26 15:50:10 -07:00
John Kessenich
c0904c15c2
Merge pull request #690 from ligfx/proper_dependencies
...
CMake: add target_link_libraries internally
2017-01-26 15:13:27 -07:00
John Kessenich
2918a2ef15
README: point to HLSL status issues
2017-01-26 12:12:36 -07:00
John Kessenich
24ed24dd0a
Merge pull request #702 from resetnow/master
...
SpvBuilder: add const specifier to vector reference arguments
2017-01-26 11:51:31 -07:00
Vlad Ivanov
689490fd4d
SpvBuilder: add const specifier to vector reference arguments
2017-01-26 20:46:42 +03:00
John Kessenich
72754864c1
Merge pull request #694 from mtavenrath/fix_origin_link
...
Use correct OriginUpperLeft when linking more than one shader.
2017-01-26 10:39:54 -07:00
Markus Tavenrath
7b89e75213
Use correct OriginUpperLeft when linking more than one shader.
2017-01-25 12:11:16 -08:00
John Kessenich
047a6a49ef
Merge pull request #696 from amdrexu/bugfix2
...
Semantics: Texture clamp functions are available for fragment shader only
2017-01-24 10:58:21 -07:00
John Kessenich
ab9e5e9f90
Merge pull request #695 from amdrexu/bugfix
...
Fix a CMakeLists issue
2017-01-24 10:57:54 -07:00
Rex Xu
00d54b4440
Semantics: Texture clamp functions are available for fragment shader only.
2017-01-24 14:36:10 +08:00
Rex Xu
c708f98081
Fix a CMakeLists issue
2017-01-24 14:24:21 +08:00
John Kessenich
2043da90df
Merge pull request #692 from hrydgard/no-nvextensions-build-fix
...
Fix build if NV_EXTENSIONS is not set
2017-01-23 12:34:15 -07:00
Henrik Rydgard
bec5fc898a
Fix build if NV_EXTENSIONS is not set
2017-01-23 16:27:08 +01:00
John Kessenich
64b010f390
Merge pull request #678 from chaoc/stereo_view_rendering
...
support SPV_NV_viewport_array2 and SPV_NV_stereo_view_rendering
2017-01-21 12:05:47 -07:00
Michael Maltese
6077a19ba3
CMake: add target_link_libraries internally
...
Makes it easier to include glslang in a larger CMake project---instead
of having to call `target_link_libraries(glslang OSDependent OGLCompiler
HLSL)`, for example, you only need to call
`target_link_libraries(glslang)` and it will pull in the helpers it
needs.
This is also better in terms of cleaning up the "public interface",
of sorts, for building glslang: end-users probably shouldn't need to
know or be explicitly dependent on internal targets.
2017-01-21 10:59:15 -08:00
chaoc
771d89fc36
support SPV_NV_viewport_array2 and SPV_NV_stereo_view_rendering
2017-01-20 16:48:26 -08:00
John Kessenich
52fceb08f4
Merge pull request #689 from mikew-lunarg/master
...
Fix for not-handled-in-switch warnings
2017-01-20 17:10:29 -07:00
Mike Weiblen
4e9e400ec6
Fix for not-handled-in-switch warnings
...
Added default to the switch() for AMD_EXTENSIONS to avoid a spew
of warning messages.
2017-01-20 13:39:30 -07:00
John Kessenich
c37f8d6b7e
Merge pull request #683 from rdb/master
...
Fix compilation with MSVC 2010
2017-01-20 13:21:42 -07:00
rdb
a2f0e0e791
Fix compilation with MSVC 2010
2017-01-20 20:51:25 +01:00
John Kessenich
22f25d80c6
Merge pull request #682 from steve-lunarg/split-copy-fix
...
HLSL: fix dereferencing when copying split structures with arrays
2017-01-19 16:56:06 -07:00
John Kessenich
d3aea5edaf
Merge pull request #679 from ashwinkolhe/akolhe_spv_khr_subgroup_vote
...
Implement SPV_KHR_subgroup_vote
2017-01-19 16:16:49 -07:00
John Kessenich
7dccb1519b
SPV: Merge pull request #675 from amdrexu/feature
...
SPV: Implement new revision of extension GL_AMD_shader_ballot
2017-01-19 16:14:28 -07:00
John Kessenich
e48b8d74e2
Infrastructure: remove potential memory leaks.
2017-01-19 15:30:56 -07:00
steve-lunarg
65cdff9a54
HLSL: fix dereferencing when copying split structures with arrays
...
When copying split types with mixtures of user variables and buitins,
where the builtins are extracted, there is a parallel structures traversal.
The traversal was not obtaining the derefenced types in the array case.
2017-01-19 15:18:00 -07:00