Граф коммитов

2751 Коммитов

Автор SHA1 Сообщение Дата
John Kessenich e9173b19a9 Non-functional: Add {} expected by convention; retrigger failed bot tests. 2017-10-27 03:10:21 -06:00
John Kessenich 0501e7c8f8 Merge pull request #1129 from xorgy/const-fold-int-min-modulo-negative-one
GLSL: Fold constant SHRT_MIN/INT_MIN/LLONG_MIN % -1 to 0.
2017-10-27 01:30:03 -06:00
Aaron Muir Hamilton f83e2f0690 GLSL: Fold constant SHRT_MIN/INT_MIN/LLONG_MIN % -1 to 0. 2017-10-25 01:32:20 +00:00
John Kessenich b5b0846244 Merge pull request #1124 from xorgy/check-inner-implicit-atomic-uint
GLSL: Check for implicit inner dimension in array of atomic_uint.
2017-10-24 08:18:09 -06:00
John Kessenich 6020995198 Merge pull request #1127 from xorgy/preprocessor-int-min-mod-negative-one
Preprocessor: Evaluate INT_MIN % -1 to 0.
2017-10-24 08:14:38 -06:00
Aaron Muir Hamilton 9d4a1b24e9 Preprocessor: Evaluate INT_MIN % -1 to 0. 2017-10-24 10:59:01 +00:00
John Kessenich 047b65f953 Merge pull request #1125 from greg-lunarg/kg1
Update spirv-tools known-good
2017-10-23 22:11:42 -06:00
GregF cc80d80d8d Update spirv-tools known-good 2017-10-23 16:48:42 -06:00
Aaron Muir Hamilton 437911af33 GLSL: Check for implicit inner dimension in array of atomic_uint. 2017-10-23 15:31:10 +00:00
John Kessenich 9cfc15513f Merge pull request #1118 from xorgy/only-swizzle-numbers-and-bools
Only try swizzles on vectors, numbers, and booleans.
2017-10-22 23:28:22 -06:00
John Kessenich 016e47f7a3 Merge branch 'only-parse-inf-constant-in-hlsl' of https://github.com/xorgy/glslang into xorgy-only-parse-inf-constant-in-hlsl 2017-10-22 23:20:42 -06:00
John Kessenich 6e33b787d3 Tests: Add test for GLSL +-#INF. 2017-10-22 23:17:18 -06:00
John Kessenich 79a4074047 Merge pull request #1120 from xorgy/overlong-hex-literal
Check for hexadecimal literals exceeding MaxTokenLength.
2017-10-22 23:09:32 -06:00
Aaron Muir Hamilton 6031266244 GLSL: Only parse [-]1.#INF in HLSL mode. 2017-10-23 02:56:27 +00:00
Aaron Muir Hamilton 9028ed204d Check for hexadecimal literals exceeding MaxTokenLength. 2017-10-22 17:55:14 +00:00
Aaron Muir Hamilton 07c0bcea92 Only try swizzles on vectors, numbers, and booleans. 2017-10-21 19:54:37 +00:00
John Kessenich b1eaf82cc8 Merge pull request #1115 from LoopDawg/stdarray-binding-set
Nonfunctional: minor: use std::array for per-set shifts, fix warning.
2017-10-20 16:31:26 -06:00
LoopDawg 2915da303f Nonfunctional: minor: use std::array for per-set shifts, fix warning.
Two unrelated, minor tweaks:

(1) Use std::array for shiftBindingForSet.  Now matches shiftBinding.
(2) Add parens in shouldFlatten() to make compiler warning happy.
2017-10-20 12:02:38 -06:00
John Kessenich 573cc9e9aa Merge pull request #1111 from LoopDawg/per-set-binding-offsets
Add per-descriptor-set IO mapping shift values.
2017-10-20 11:35:29 -06:00
John Kessenich 7a9db71f46 SPV: Don't emit StorageImageMultisample capability for subpass images. 2017-10-20 10:56:50 -06:00
John Kessenich 6cfeced8de Non-functional: missing comments from missed git add. 2017-10-20 10:56:20 -06:00
John Kessenich 1b46f137f7 HLSL: Fix #1106. Support shader setting of binding/set for $Global. 2017-10-19 16:54:25 -06:00
LoopDawg 08a14422c1 Add per-descriptor-set IO mapping shift values.
This PR adds the ability to provide per-descriptor-set IO mapping shift
values.  If a particular binding does not land into a per-set value,
then it falls back to the prior behavior (global shifts per resource class).

Because there were already 6 copies of many different methods and internal
variables and functions, and this PR would have added 6 more, a new API is
introduced to cut down on replication and present a cleaner interface.
For the global (non-set-specific) API, the old entry points still exist
for backward compatibility, but are phrased internally in terms of the
following.

    // Resource type for IO resolver
    enum TResourceType {
        EResSampler,
        EResTexture,
        EResImage,
        EResUbo,
        EResSsbo,
        EResUav,
        EResCount
    };

Methods on TShader:

    void setShiftBinding(TResourceType res, unsigned int base);
    void setShiftBindingForSet(TResourceType res, unsigned int set, unsigned int base);

The first method replaces the 6 prior entry points of various spellings, which
exist now in depreciated form.  The second provides per-resource-set functionality.
Both accept an enum from the list above.

From the command line, the existing options can accept either a single shift value as
before, or a series of 1 or more [set offset] pairs.  Both can be provided, as in:

    ... --stb 20 --stb 2 25 3 30 ...

which will use the offset 20 for anything except descriptor set 2 (which uses 25) and
3 (which uses 30).
2017-10-19 11:50:30 -06:00
John Kessenich fe4e572c53 GLSL->SPIR-V: Put precision decorations on imageLoad(). 2017-10-19 02:07:30 -06:00
John Kessenich f0e35bf0ef GLSL: Make sampling operations have agnostic precision qualifiers for desktop.
Desktop defaults to highp for samplers, but this should not apply to the built-in
functions, so make it appy only to user declarations.
2017-10-19 00:32:59 -06:00
John Kessenich 3112b5686d Merge pull request #1113 from xorgy/preprocessor-int-min-over-negative-one
Preprocessor: Evaluate INT_MIN / -1 to 0.
2017-10-19 00:24:05 -06:00
John Kessenich 0b55e0f203 Merge pull request #1102 from KhronosGroup/partially-flatten
HLSL: Partially flatten hierarchies, instead of all or nothing.
2017-10-18 14:53:53 -06:00
Aaron Muir Hamilton dc756a61c8 Preprocessor: Evaluate INT_MIN / -1 to 0.
This division is undefined behaviour which raises SIGFPE on x86.
  Most C++ preprocessors evaluate this silently to 0.
2017-10-18 19:56:19 +00:00
John Kessenich a50b107e62 Build: Fix build warning. 2017-10-17 12:27:51 -06:00
John Kessenich 8b555f7458 Merge pull request #1109 from xorgy/never-try-to-swizzle-void
GLSL: Don't try to swizzle void.
2017-10-17 09:03:17 -06:00
Aaron Muir Hamilton 5313613dd1 Don't try to swizzle void. 2017-10-17 09:04:38 +00:00
GregF 856502cb1b Update spirv-tools known-good 2017-10-16 21:05:13 -06:00
John Kessenich 7d67c6cbc2 PP: Fix #1104: Missing check for #if overflow.
Also, rationalized this to generally make it safer and more readable.
It could use a more modern approach, at some point...
2017-10-16 15:29:07 -06:00
John Kessenich 1a4bbc4a95 HLSL: More clip fix: It is more involved than previous commit. Complete. 2017-10-16 13:11:53 -06:00
John Kessenich 4ce5b562bb Fix #1103: clip() works on int/uint. 2017-10-16 11:42:35 -06:00
John Kessenich 5889fa03f9 Tests: Add clip(int) tests. 2017-10-16 11:40:32 -06:00
John Kessenich cf571f7310 Infrastructure: Add a TShader method to publicly expose the intermediate.
Fixes #1088.
2017-10-12 23:12:40 -06:00
John Kessenich 41aa19953f HLSL: Partially flatten hierarchies, instead of all or nothing.
Fixes #1092.  Allows arrays of opaques to keep arrayness, unless
needed by uniform array flattening.
Can handle assignments of mixed amounts of flattening.
2017-10-12 16:52:32 -06:00
John Kessenich 60e9161100 Merge pull request #1098 from LoopDawg/attribute-gets
HLSL: nonfunctional: add helper access methods to TAttributeMap
2017-10-11 06:05:06 +03:00
John Kessenich 0d1f63ec83 Merge pull request #1097 from SWIFTingAround/master
Set cmake-policy CMP0048 to NEW
2017-10-11 01:54:06 +03:00
John Kessenich ad2bc097e2 Merge pull request #1094 from LoopDawg/split-shadow-tx
HLSL: nonfunctional: rename setId -> switchId, add comment
2017-10-11 01:48:49 +03:00
John Kessenich ddb45f8d95 Merge pull request #1080 from hedejing/master
Add getAsLoopNode() method for TIntermLoop
2017-10-11 01:48:04 +03:00
LoopDawg 52c087ff53 HLSL: add helper access methods to TAttributeMap
There was some code replication around getting string and integer
values out of an attribute map.  This adds new methods to the
TAttributeMap class to encapsulate some accessor details.
2017-10-10 14:59:40 -06:00
Tim Diekmann aab0001220 Set cmake-policy CMP0048 to NEW 2017-10-10 16:26:31 +02:00
He Dejing fdbd0ebab1 Add getAsLoopNode() method for Loop node
follow local conventions of spaces
2017-10-08 15:40:42 +08:00
LoopDawg 028c5a8dc4 HLSL: nonfunctional: rename setId -> switchId, add comment
Method rename, add comment about its intended use.  No
test diffs.
2017-10-07 16:43:18 -06:00
John Kessenich bb79abccb3 HLSL: Validate implicit initializer assignment to opaque members.
Fixes #1091.
2017-10-07 13:25:21 -06:00
John Kessenich 07ed11f9a0 SPV: GeneratorVersion: bump version number because of atomic decrement change. 2017-10-07 11:41:20 -06:00
John Kessenich b27de0289c Merge pull request #1090 from tafuri/#1084-fix-segfault
Only track variables in the global scope
2017-10-07 07:19:21 +03:00
John Kessenich 48d6e798bc SPV: Correct semantics of atomic-counter decrement.
The semantics differ between GLSL/HLSL and SPIR-V.
Translate between these.
2017-10-06 21:21:48 -06:00