Rex Xu
3e783f9b49
SPV: Unexpected declarations of capabilities from NV extensions.
2017-02-22 16:44:48 +08:00
John Kessenich
8f674e821e
Fix issue #676 : emit error message on failure to open spv file.
2017-02-18 09:45:40 -07:00
John Kessenich
b0561d934c
Merge pull request #720 from flaviobortot/master
...
Added --vn option to generate a C header file containing a variable a…
2017-02-17 09:34:08 -07:00
Flavio
15017db971
Removed tabs and replaced with spaces. Changed layout for "else if"
2017-02-15 14:29:33 -08:00
chaoc
df3956c50f
Implement NVX_multiview_per_view_attributes
2017-02-14 15:04:33 -08: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
65ee230f1c
HLSL: Add tests and refine what decorations are passed through per stage/in/out.
2017-02-06 23:13:16 -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
Endre Oma
ad58d45437
SPV: Emit names of specialization constants
2017-01-31 21:16:17 +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
chaoc
771d89fc36
support SPV_NV_viewport_array2 and SPV_NV_stereo_view_rendering
2017-01-20 16:48:26 -08: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
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
Rex Xu
430ef40ab4
Implement new revision of extension GL_AMD_shader_ballot
...
- Add support for invocation functions with "InclusiveScan" and
"ExclusiveScan" modes.
- Add support for invocation functions taking int64/uint64/doube/float16
as inout data types.
2017-01-19 12:09:51 +08:00
Ashwin Kolhe
c720f3e639
Implement SPV_KHR_subgroup_vote
...
doc.cpp: Add capabilities, scope to the opcodes. Add opcode and
capability strings.
GLSL.ext.KHR.h: Add extension
string.
GlslangToSpv.cpp: Fix handling of opcodes to generate
appropriate SPIR-V.
spirv.hpp: Add capability and opcode
enums.
spv.shaderGroupVote.comp.out: Update SPIR-V output for test
shader.
2017-01-18 14:16:49 -08:00
John Kessenich
fdf6347f0a
HLSL: Add EOpMatrixSwizzle, selectively decomposed to other ops, for issue #670 .
...
Since EOpMatrixSwizzle is a new op, existing back-ends only work when the
front end first decomposes it to other operations. So far, this is only
being done for simple assignment into matrix swizzles.
2017-01-13 12:35:01 -07:00
John Kessenich
927608b393
Non-functional: White space after "//", mostly for copyrights.
2017-01-06 12:34:14 -07:00
John Kessenich
ecba76fe73
Non-Functional: Whitespace, comments, replace accidentally deleted comment.
...
- fixed ParseHelper.cpp newlines (crlf -> lf)
- removed trailing white space in most source files
- fix some spelling issues
- extra blank lines
- tabs to spaces
- replace #include comment about no location
2017-01-06 11:24:14 -07:00
John Kessenich
807a0d9e2f
Merge pull request #640 from chaoc/modify-shader-ballot
...
Modify shader ballot extension by adding OpSubgroupReadInvocationKHR
2016-12-21 17:40:29 -07:00
chaoc
f200da8631
Modify shader ballot extension by adding OpSubgroupReadInvocationKHR
2016-12-21 12:08:09 -08:00
chaoc
6e5acae144
Add support for SPV_NV_geometry_shader_passthrough
2016-12-20 13:28:52 -08:00
chaoc
0ad6a4e60d
Add support for SPV_NV_sample_mask_override_coverage
2016-12-19 16:29:34 -08:00
John Kessenich
6a60c2f9ea
Linker: Walk the call graph to report an error on missing bodies.
2016-12-08 23:22:21 -07:00
John Kessenich
517fe7a6ad
Non-functional: Rename some entry-point variables to entryPoint, not main.
2016-11-26 13:31:47 -07:00
John Kessenich
fca826212c
Always correctly terminate main. Issue #588 , PR #600 .
2016-11-26 13:23:20 -07:00
chrgau01@arm.com
c3f1cdfa57
GLSL: The execution scope for barriers should be Workgroup.
2016-11-14 10:10:05 +01:00
Jamie Madill
57cb69a3f1
Fix unrefenced variable warning with AMD_EXTENSIONS disabled.
2016-11-09 13:49:24 -05:00
David Neto
bb5c02fd23
Add missing guard to code that uses AMD extensions
...
Otherwise compilation fails when ENABLED_AMD_EXTENSIONS is off.
2016-10-19 10:17:25 -04:00
Rex Xu
17ff343bf4
SPV: Add missing extension declarations for certain AMD extensions.
2016-10-14 17:41:45 +08:00
Maciej Jesionowski
7208a974aa
SPV: Use SampledImage with OpImageQueryLod
...
Khronos SPIR-V issue #74
2016-10-12 16:16:24 +02:00
Rex Xu
f3b27471f8
SPV: Implement extension SPV_KHR_shader_draw_parameters.
2016-10-11 14:40:35 +08:00
John Kessenich
ed33e05762
HLSL: Do structure conversion for return type struct-punning on non-entry-point functions.
2016-10-06 13:06:13 -06:00
John Kessenich
074ced3e00
Merge pull request #521 from yavn/frag-shader-primitive-id-capability
...
SPV: PrimitiveId in frag shader will emit OpCapability
2016-10-01 11:38:18 -06:00
Rex Xu
c9e3c3c941
Parser: Implement extension GL_AMD_gpu_shader_half_float.
...
- Add built-in types: float16_t, f16vec, f16mat.
- Add support of half float constant: hf, HF.
- Extend built-in floating-point operators: +, -, *, /, ++, --, +=, -=,
*=, /=, ==, !=, >=, <=, >, <.
- Add support of type conversions: float16_t -> XXX, XXX -> float16_t.
- Add new built-in functions.
2016-09-30 16:13:06 +08:00
Maciej Jesionowski
04b3e8746f
SPV: PrimitiveId in frag shader will emit Geometry capability
...
Using PrimitiveId in a fragment shader requires declaring
an OpCapability with either Geometry or Tessellation.
2016-09-27 10:35:09 +02:00
Rex Xu
b707205b0d
SPV: OpGroupBroadcast is unable to handle vector operand.
2016-09-26 15:53:40 +08:00
Rex Xu
36876e6408
SPV: Still have to specify SPIR-V extension for gl_SubGroupSizeARB and gl_SubGroupInvocationARB.
2016-09-23 22:13:43 +08:00
Rex Xu
5159664475
SPV: Implement the extension SPV_KHR_shader_ballot
2016-09-22 16:05:07 +08:00
John Kessenich
eee9d536bc
Track separate entry-point names and mangled names...
...
... and use each in the correct way at consumption sites.
This completes issue #513 .
2016-09-19 18:09:30 -06:00
John Kessenich
6fccb3cd75
Non-functional: Sweep through the stack for consistent with "main" and entry point.
...
Partially addresses issue #513 .
2016-09-19 16:01:41 -06:00
John Kessenich
b3e24e4359
SPV: Fix issue #506 : generalize struct deep copy to include arrays.
2016-09-11 12:33:43 -06:00
Rex Xu
c9f349234f
SPV: Use OpBitcast to implement 4 pack/unpack built-in functions.
2016-09-09 17:50:07 +08:00
Rex Xu
64bcfdb632
Parser: Add 64-bit type conversion for specialization constant.
2016-09-05 22:20:28 +08:00
John Kessenich
4bf7155051
SPV: Flatten structs for copy when they are GLSL type aliases.
...
Addresses issue #304 and issue #307 by replacing unmatched type OpStores with
per-member copies. Covers assignment statements and most argument passing, but
does not yet cover r-value-based argument passing.
2016-09-02 16:35:01 -06:00
John Kessenich
f2b7f3353b
SPV: Tighten up number of struct-types declared based on decoration.
...
Takes some pressure off of issue #304 .
Structures don't inherit locations and then explicitly decorate
members with them, so removed this reason to have another instance
of a structure type.
2016-09-01 17:05:23 -06:00
Rex Xu
2bbbe0621d
SPV: Some group invocation operations should be applied to scalars.
2016-08-23 15:41:05 +08:00
Dan Baker
55d5f2d4df
HLSL: Changing SPIRV source language to unkown
2016-08-15 16:05:45 -04:00
John Kessenich
4583b61e20
HLSL: Smear scalars to match vectors for relational operations.
...
Yield a vector relational compare and a vector result.
2016-08-07 19:14:22 -06:00
John Kessenich
f6640761c4
Front-end: Implement 2nd task of issue #400 ; precision of result and operation.
...
From the ES spec + Bugzilla 15931 and GL_KHR_vulkan_glsl:
- Update precision qualifiers for all built-in function prototypes.
- Implement the new algorithm used to distinguish built-in function
operation precisions from result precisions.
Also add tracking of separate result and operation precisions, and
use that in generating SPIR-V.
(SPIR-V cares about precision of operation, while the front-end
cares about precision of result, for propagation.)
2016-08-02 21:48:02 -06:00