425 Commits

Author SHA1 Message Date
Johannes van Waveren
2f4c832d47 Merge remote-tracking branch 'upstream/master' 2016-10-21 17:21:46 +09:00
Johannes van Waveren
8e1e717cae fixed MSVC 2015 compile warnings 2016-10-21 17:21:12 +09: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
John Kessenich
1fabc0f697 Merge pull request #548 from baldurk/vs2010-compile-fixes
VS2010 compile fixes
2016-10-15 23:09:31 -06:00
Rex Xu
17ff343bf4 SPV: Add missing extension declarations for certain AMD extensions. 2016-10-14 17:41:45 +08:00
baldurk
021dbb4cd4 Change negatable_left_shift and negatable_right_shift to inline funcs
* This avoids an internal compile error on VS2010 possibly related to
  std::enable_if use.
2016-10-13 19:39:24 +02:00
baldurk
cabba60abf Change {} constructor brackets to () 2016-10-13 19:32:37 +02:00
baldurk
7cac9e7245 Change "using x = y;" to "typedef y x;" statements 2016-10-13 19:31:15 +02:00
baldurk
a227d27227 Explicitly implement default constructors 2016-10-13 19:30:27 +02:00
baldurk
1a65fc269c Add std::isnan and std::isinf wrappers for VS2010 that doesn't have them 2016-10-13 19:28:54 +02:00
baldurk
033d3ef22c Change enum class to plain enum 2016-10-13 19:28:20 +02:00
baldurk
ff160f15ef Add #include <cstdint> for std::uint32_t usage 2016-10-13 19:24:42 +02: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
Rex Xu
64b9743ce0 SPV: Support simultaneous l-value swizzle and dynamic component selection. 2016-09-14 14:43:55 +08: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
steve-lunarg
a8456415b8 WIP: SPV Remapper: add remapper test framework 2016-08-25 10:46:51 -06:00
Rex Xu
2bbbe0621d SPV: Some group invocation operations should be applied to scalars. 2016-08-23 15:41:05 +08:00
steve-lunarg
811d9f4cad WIP: SPIRV remapper: allow 64 bit literals in OperandVariableLiteralId class iteration 2016-08-17 08:33:49 -06:00
Dan Baker
55d5f2d4df HLSL: Changing SPIRV source language to unkown 2016-08-15 16:05:45 -04:00
David Neto
b86e8b629a Revert "Merge pull request #456 from steve-lunarg/remapper-literal64"
This reverts commit ad08b30f696267ec6243dd0ad68a3db889cd2d21, reversing
changes made to 28660bb580d4c61e16ef75008550a87b3be90b91.

This backs out the pull request
https://github.com/KhronosGroup/glslang/pull/456 because it introduced
several internal errors even on code that only uses 32-bit numeric
types.
2016-08-12 16:49:58 -04:00
steve-lunarg
b249f2fc24 SPIRV: allow 64 bit literals in OperandVariableLiteralId class iteration. 2016-08-12 09:53:31 -06:00
John Kessenich
2c6038ecf1 Merge branch 'cpp-headers' 2016-08-11 10:01:13 -06: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
267590d452 Whitespace: Nonfunctional: fix inconsistent white space, esp. no tabs. 2016-08-05 17:34:34 -06:00
John Kessenich
66ec80e01b Build: C++ headers: Replace PR #366 with a more directed version. 2016-08-05 14:04:23 -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
John Kessenich
1176530bf5 SPV: Prevent issue #415 with better semantic checking. 2016-07-31 12:39:46 -06:00
Rex Xu
ce31aea0d0 SPV: Fix an issue of ++/-- for dvec/dmat. 2016-07-29 16:13:04 +08:00
John Kessenich
8c8505c604 SPV: For AST interpolateAt* ops consuming a swizzle, invert the order.
Apply the interpolation first, then apply the swizzle to the result,
the inverse of the order requested by the AST.  This fixes issue #411.
2016-07-26 12:53:54 -06:00
Pyry Haulos
b93e3a3957 Remap Scope and MemorySemantics IDs in SPIRV remapper
Scope and MemorySemantics operands contain IDs as well and may need
remapping.
2016-07-22 09:57:28 -07:00
Rex Xu
9d93a2370d Implement 4 AMD-specific extensions.
- Support GL_AMD_shader_ballot (SPV_AMD_shader_ballot).
- Support GL_AMD_shader_trinary_minmax (SPV_AMD_shader_trinary_minmax).
- Support GL_AMD_shader_explicit_vertex_parameter
  (SPV_AMD_shader_explicit_vertex_parameter).
- Support GL_AMD_gcn_shader (SPV_AMD_gcn_shader).
2016-07-20 16:18:05 +08:00
John Kessenich
4016e38bea Build: Switch to Rev. 6 of headers, removing "BadValue" enum stuff.
Note: Technically, this is glslang's modified private copy of official headers.
Official headers will appear in other places, like
https://github.com/KhronosGroup/SPIRV-Headers.
2016-07-15 11:55:34 -06:00
John Kessenich
7f349c73db Build: Remove causes of pedantic warnings. Addresses issue #352 and PR #242. 2016-07-08 22:09:10 -06:00
John Kessenich
c45dddae5f Merge pull request #314 from mre4ce/master
Added -x option to save SPIR-V as 32-bit hexadecimal numbers to a text file.
2016-07-08 15:26:27 -06:00
John Kessenich
78a4557621 SPV: Fix issue #376; declare Geometry capability for fragment use of gl_Layer. 2016-07-08 14:05:15 -06:00
John Kessenich
91e4aa5900 SPV: Further refine OpenGL vs. Vulkan differences for SPIR-V.
Includes adding test cases to verify the differences.
2016-07-07 19:27:15 -06:00