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

2751 Коммитов

Автор SHA1 Сообщение Дата
David Neto 497d5ffefd Update SPIRV-Tools known-good
One legalization case updated for a renumbered ID
2018-02-09 13:20:45 -05:00
GregF 484cbd0484 Upgrade update_glslang_sources.py to work with gitlab branch
--site gitlab must be added to command for gitlab capability.
Default is github.
2018-02-08 16:02:23 -07:00
John Kessenich 4ee5193b53 Non-functional: GLSL: Fix #1242; don't pass reference to nullptr. 2018-02-08 12:13:25 -07:00
John Kessenich 2f658e1f08
Merge pull request #1241 from greg-lunarg/kg9
Add DeadInsertElim to legalization and RedundancyElim to -Os.
2018-02-08 08:59:05 -07:00
GregF 8a4848f5b2 Add DeadInsertElim to legalization and RedundancyElim to -Os. 2018-02-07 16:04:42 -07:00
John Kessenich b5ab34590e
Merge pull request #1239 from KhronosGroup/deeper-access-chains
SPV: Create more access chains addressing a few swizzling issues.
2018-02-06 09:50:13 -07:00
John Kessenich 9ffc72d1a3
Merge pull request #1238 from zeux/pp-string-buffer
Preprocessor: Use std::string instead of std::stringstream
2018-02-06 09:47:44 -07:00
John Kessenich 71b5da60d0 SPV: Bump up generator number, because previous commit changes code gen slightly. 2018-02-06 08:06:36 -07:00
John Kessenich 5c3eed542d SPV: Create more access chains addressing a few swizzling issues.
- Fixes #1233
- Treats local bools like anything else
- more consistently deals with a dynamic component selection
2018-02-06 07:24:12 -07:00
Arseny Kapoulkine 75cffdf92c Preprocessor: Use std::string instead of std::stringstream
std::stringstream has a measurable overhead for preprocessing - it
appears that operator<< does a tiny bit of extra work for appending
chars/strings and also can't be inlined in most cases on VS2015;
additionally, std::endl triggers a stream flush which also adds up.

Replacing this with std::string buffer gets the preprocessing time down
from 180ms to 135ms in one case, making it 1.33x faster.

Note that integer-to-string conversion is using std::to_string; in
theory this could be slower than sprintf or manual conversion, but I
haven't found these cases to affect preprocessing time in practice
(std::to_string would always use the short string buffer for
line/version numbers, and the number of calls is not too significant).
2018-02-05 16:07:39 -08:00
John Kessenich 2651ccaec8
Merge pull request #1234 from dneto0/update-spirv
Update SPIRV-Tools known-good
2018-02-05 14:42:45 -07:00
David Neto d123299281 Update SPIRV-Tools known-good
Update SPIRV-Tools.  Relevant functional changes:
 - Optimizer enhancements:
   - ADCE now removes OpSwitch
   - Block merging occurs in more cases
 - Optimizer fixes:
   - Constant propagation (CCP): support matrix constants
   - #1199: Optimizer: Fix CCP: don't propagate spec constants.
   - #1203: Optimizer: Fix common uniform elim bug introduced by refactoring.
   - #1210: Optimizer: Aggressive dead code elimination: Fix 'break' identification.
   - #1212: Optimizer: Aggressive dead code elimination: Was skipping too many instructions.
   - #1214: Optimizer: Aggressive dead code elimination: Fix infinite loop.
   - #1228: Optimizer: Fix CCP: Handling of varying Phi nodes; was resulting in infinite loop.
   - #1245: Optimizer: Dead branch elimination: Avoid a null pointer dereference.
   - #1250: Optimizer: Dead branch elimination: Avoid spuriously reporting a change.
   - #1262: Support building on VisualStudio 2013 again

Update SPIRV-Headers, with "unified1" directory.

Updated one Glslang legalization test base result due to better block merging.
2018-02-05 14:30:13 -05:00
John Kessenich b3f9e0a334 GLSL: Fix #1229: merge array sizes in parameter declarations. 2018-02-02 12:41:25 -07:00
John Kessenich 98e733cb58
Merge pull request #1232 from KhronosGroup/control-flow-attributes
Control flow attributes
2018-02-02 09:03:44 -07:00
John Kessenich da0b18c3db Error message: Improve error message (will help another party id a bug). 2018-02-01 11:09:21 -07:00
John Kessenich 304765681b AST: dump attributes along with control flow. 2018-02-01 00:55:26 -07:00
John Kessenich a2858d9bdd GLSL: Implement GL_EXT_control_flow_attributes.
See https://github.com/KhronosGroup/GLSL/pull/11.
2018-02-01 00:55:08 -07:00
John Kessenich e18fd20d5c HLSL: Refactor attribute implementation.
- make it sharable with GLSL
- correct the case insensitivity
- remove the map; queries are not needed, all entries need processing
- make it easier to build bottom up (will help GLSL parsing)
- support semantic checking and reporting
- allow front-end dependent semantics and attribute name mapping
2018-02-01 00:30:34 -07:00
John Kessenich e349af7e20 Non-functional: Fix #1231: remove duplicated code. 2018-01-31 22:15:45 -07:00
John Kessenich 2b5ea9f851 SPV Version: Emit the requested SPIR-V version, not the header version.
Fixes #1236.
2018-01-31 18:41:59 -07:00
John Kessenich 43f5b27321 Non-Functional: Use OpModuleProcessed from the unified header. 2018-01-31 18:06:44 -07:00
John Kessenich 22f02d09cc EShTargetSpv: Fix #1235, spelling, in a backward compatible way. 2018-01-31 17:53:24 -07:00
John Kessenich 6c1c2766b6 SPV: Bump SPIR-V header to the unified1 version (version 1.2). 2018-01-29 16:16:11 -07:00
John Kessenich 82ead04c39 Non-functional. Fix #1223: expand comments. 2018-01-17 21:45:25 -07:00
John Kessenich ade21c716c
Merge pull request #1224 from fjhenigman/unused
Fix unused function warning.
2018-01-17 20:49:47 -07:00
John Kessenich ab46a2e5e9
Merge pull request #1221 from dneto0/update-spirv
Update known-good spirv-tools.
2018-01-17 02:02:35 -07:00
Frank Henigman 541f7bbd50 Fix unused function warning.
TGlslangToSpvTraverser::getExtBuiltins is only used when AMD_EXTENSIONS
is defined, so only define it in that case to avoid an unused function
warning.
2018-01-16 00:18:26 -05:00
David Neto 0e58bbd5aa Update known-good spirv-tools.
Optimizations used in HLSL legalization now sweep away unused types.
2018-01-12 12:52:04 -05:00
John Kessenich e22e347395 HLSL: Fix #1208: accept both int and uint in asuint() and asint(). 2018-01-11 13:26:09 -07:00
John Kessenich 63400477f6 HLSL: Protect against 'continue' outside of loops. 2018-01-10 03:50:42 -07:00
John Kessenich 9b5668c8ef HLSL: Fix #1214: check for nesting in loop/switch of break statements. 2018-01-09 22:32:42 -07:00
John Kessenich 7420a761a3 HLSL: Fix #1215: propagate error on seeing a type name instead of a variable. 2018-01-09 21:35:44 -07:00
John Kessenich eb2c0c72bf GLSL: XFB: more support for built-in block redeclarations with XFB.
- correct inheritence (or not) of the right XFB buffer
- compute implicit stride (fixes #1212)
- semantic check block-member redeclarations
- inherit stride from a member
2018-01-09 18:00:33 -07:00
John Kessenich 9c6f8cc29b Scanner: Many int16 and float16 fixes, including performance.
- fixes #1209, addresses most of #1187
- only query feature availability on seeing the feature
  (was doing it for every single token)
- correct case-sensitive checks for multi-character suffixes
2018-01-08 15:59:29 -07:00
John Kessenich c043aadd25 Scanner: Many int64 fixes, including performance.
- partially addresses #1209 and #1187
- only query 64-bit extension on seeing use of a 64-bit literal
  (was doing it for every single token)
- correct HLSL acceptance of 64-bit literal syntax (still an int though)
- error on overflow of 32-bit literal type
2018-01-08 11:52:23 -07:00
John Kessenich adc33b23cc Non-functional: Fix HLSL error message, and code formatting. 2018-01-08 11:47:08 -07:00
John Kessenich 99892d5a9a
Merge pull request #1211 from greg-lunarg/kg7
Update known good spirv-tools. Fixes issue #1205.
2018-01-05 12:01:03 -07:00
GregF ead4bb190f Update known good spirv-tools. Fixes issue #1205. 2018-01-05 11:17:34 -07:00
John Kessenich 798d005ccd Build: Tickle bots to try again... seems like a process hang; all tests passed. 2018-01-02 13:07:14 -07:00
John Kessenich 132cf53737 HLSL: Fix #1203: Declare anonymous members for cbuffer with no ';'
The grammar for no semicolon and no object name for cbuffer/tbuffer
was correct, but the production still skipped the anonymous declarations
if an identifier followed.
2018-01-02 11:27:54 -07:00
John Kessenich fd1e8a78a8 HLSL: Fix 1201: Accept 'layout' as an identifier. 2017-12-29 20:59:13 -07:00
John Kessenich 046bae0bab HLSL: Attributes: Add [[vk::constant_id()]] and [[vk::push_constant]] 2017-12-23 17:29:45 -07:00
John Kessenich e08ed0ccf4
Merge pull request #1190 from jfmarquis/hlsl-store-type-propagation
HLSL: Fix possibly incorrect type conversion in Store2-3-4
2017-12-21 14:59:34 -07:00
John Kessenich 848a0ccbfd Merge branch 'greg-lunarg-flatten1' 2017-12-21 12:26:27 -07:00
John Kessenich 8a3f7a12d4 Merge branch 'flatten1' of https://github.com/greg-lunarg/glslang into greg-lunarg-flatten1 2017-12-21 12:25:52 -07:00
John Kessenich b3cff2f297 HLSL Tests: Remove optimization from tests that don't need it.
This is to create more stable test results.
2017-12-21 12:17:25 -07:00
GregF e0639287df HLSL Legalization: Add scalar replacement
This allow for propagation through structs with dynamically indexed
arrays. This supports recent removal of non-io struct flattening.
2017-12-21 11:30:13 -07:00
Jean-François Marquis 3f0aff8ee5 HLSL: Fix possibly incorrect type conversion in StoreN and LoadN
Set type to r-value resulting from indexing vector, to prevent
float->uint conversion when source is already uint. Resulting
OpConvertFToU would otherwise fail validation because source is
already uint.
For LoadN, incorrect uint->float->uint can be avoided; fixing
potential truncation of big integer values.
2017-12-21 12:11:40 -05:00
John Kessenich 3b2dc1a756
Merge pull request #1195 from LoopDawg/gcc-bug-workaround
compile error fix for g++ 5.4.0
2017-12-20 15:37:22 -07:00
LoopDawg c074f2bc24 g++ 5.4.0 suspected defect workaround
Fix compilation error under g++ 5.4.0.
2017-12-20 11:21:05 -07:00