Jeff Bolz
ad3f10bbd0
EXT_debug_printf - make escape sequences better match C/C++
2020-03-10 10:23:07 -05:00
Jeff Bolz
13444545a9
disable escape sequences for #line and #error
2020-03-09 21:09:18 -05:00
Jeff Bolz
04d73731de
GL_EXT_debug_printf implementation
2020-03-05 13:41:34 -06:00
John Kessenich
deec1933e9
Web: Turn off includes, independent preprocessing path, fine tune all.
...
Saved about 21K, size down to 380K of MSVC x86 code.
Fixed one bug that needs to be looked at on the master branch:
The test for needing a Vulkan binding has a bug in it, "!layoutAttachment"
which does not mean "no layoutAttachment", because that is non-zero.
This is why some test and test results changed.
2019-08-20 23:21:56 -06:00
John Kessenich
d8834df992
Web: Optional error management and error tightening.
...
Saves about 6.5K
2019-08-20 23:21:56 -06:00
John Kessenich
fb4f2333da
Web: Use isEsProfile() instead of run-time testing; remove more atomics
...
Saves 2.5K, and design is better.
2019-08-20 23:21:56 -06:00
John Kessenich
39697cdb9d
Web: Remove unnecessary GLSL numeric types, and some collateral.
...
This saves another 40K of x86 binary, which is about 13% of the target size.
2019-08-20 23:21:56 -06:00
John Kessenich
7015bd658e
Web: Remove/rationalize a set of *_EXTENSIONS, using GLSLANG_WEB.
...
Focus was on the front end (not SPIR-V), minus the grammar.
Reduces #ifdef count by around 320 and makes the web build 270K smaller,
which is about 90% the target size.
The grammar and scanner will be another step, as will the SPIR-V backend.
This makes heavy use of methods #ifdef'd to return false as a global way
of turning off code, relying on C++ DCE to do the rest.
2019-08-20 23:21:55 -06:00
John Kessenich
d4ed5158d1
Web: Remove a few additional HLSL constructs with ENABLE_HLSL.
...
Saves about 3K.
2019-08-20 23:21:55 -06:00
John Kessenich
a84079dcf3
PP: Fix #1605 : Paste tokens for ## through number->letter transitions.
2019-02-22 08:54:38 -07:00
John Kessenich
6225dd4ba1
PP: Faithfully track white-space through macro record/use, fixing bugs:
...
This fixes the comparison in macro body redefinitions, where initial
white-space differences do not matter, but internal white-space differences
do matter.
2019-02-19 07:26:54 -07:00
John Kessenich
5cdf3c5a23
PP: Non-functional: Remove the sub-tokenization of macro stream record.
...
This has been a continually fragile area. Switching to a vector of real
objects, instead of a linearized stream of characters, removes a bunch of
code and generally makes this area more robust.
2019-02-19 07:26:36 -07:00
John Kessenich
bce1f51096
Build: Fix #1640 : Change strcpy to snprintf.
2019-02-18 22:25:58 -07:00
John Kessenich
6fee94460f
PP: Fix #1694 : Rationalize errors on partially expanded macro argument.
2019-02-16 07:35:13 -07:00
John Kessenich
9840f11f85
PP: Fix #1694 : Handle badly formed argument substitution.
...
Also added a warning for no space after a macro name.
2019-02-11 03:05:00 -07:00
John Kessenich
b2395e9ddf
HLSL: Fix #1655 ; use "" for nullptr file names. Needs test cases.
2019-01-16 16:07:51 +07:00
Greg Fischer
d445bb2867
Create separate OpSource for each included file
2018-12-28 12:06:43 -07:00
John Kessenich
b23d232ec5
Licensing. Fixes #958 . Add licenes file and update copyrights.
2018-12-14 10:47:35 -07:00
John Kessenich
30b697ee63
Build: Reduce warnings.
2018-12-13 18:43:02 -07:00
Rémi Verschelde
ebfd91a719
Remove Unix executable permission from text files
2018-12-10 10:49:16 +01:00
greg-lunarg
5d43c4aac7
SPV: Fix #1575 , fix #1593 : Support HLSL #line
...
SPIR-V OpLines now contain filenames from HLSL-style #lines.
2018-12-07 17:36:33 -07:00
Alexander Galazin
32def9f467
Rename GL_KHX_shader_explicit_arithmetic_types to GL_EXT_shader_explicit_arithmetic_types
2018-12-03 13:16:59 +01:00
John Kessenich
4207c97b93
Fix #1563 : Corrupt token when an object macro miscalls a function macro
2018-11-07 18:25:56 -07:00
John Kessenich
4ee2f75294
PP: More clearly distinguish funtion-like and object-like macros
2018-11-07 17:22:17 -07:00
otakuto
d03da06ac1
Remove execute permissions
2018-08-07 03:16:20 +09:00
John Kessenich
7cdc24c06c
PP: Address #1456 : Strip float suffixes before using platform library.
2018-07-27 13:08:05 -06:00
John Kessenich
561a43d272
PP: floating-point parsing: more stable handling of istringstream::fail
...
Possibly addresses #1456
2018-07-26 14:29:29 -06:00
John Kessenich
802c62bca4
PP: Rationalize return values of MacroExpand.
...
This results in better error recovery, including fewer
crashes on badly formed PP input.
2018-07-02 13:47:31 -06:00
John Kessenich
9cc81de096
PP/HLSL: Fix #1424 : support comma in nested curly braces for macro arg
2018-07-02 10:40:32 -06:00
John Kessenich
866f67140e
Build: Make literal casting have fewer warnings and be more consistent.
2018-06-20 18:10:55 -06:00
LoopDawg
470a68cfd4
Fix several signed/unsigned comparison compile warnings.
2018-06-01 20:23:50 -06:00
John Kessenich
3e8e9f7bbd
PP: Implement locale-independent strtod, using istringstream and a fast path.
...
Fixes #1228 . Fixes #234 .
This uses imbue() to be locale independent. Notes:
- 'sstream >> double' is much slower than strtod()
* this was measurable in the test suite as a whole, despite being
a tiny fraction of what the test suite does
- so, this embeds a fast path that bypasses sstream most of the time
=> the test suite is faster than before
- sstream is probably slower, because it does more accurate rounding than strtod()
- sstream does not create INFINITY by itself, this was done based on failure inferencing
2018-05-24 22:08:30 -06:00
John Kessenich
6c52f8968c
PP: Remove second parsing of numbers recorded in macros; save/use original.
...
This partly addresses #1228 and #234 by reducing usage of strtod (or atof).
There is now only place to parse a floating-point number.
2018-05-24 18:24:06 -06:00
John Kessenich
e7e081bda9
PP: don't give errors on some tokens under #if 0 (or similar).
...
Fixes #1295 .
Tokens that are accepted by any version of HLSL or GLSL should be
allowed when #ifdef'd off, such that errors are not reported.
2018-03-19 00:43:18 -06:00
Rex Xu
a00e51b5b2
HLSL: Correct some mistakes for min16 types
...
- Add missing constructor ops to support float16/int16/uint16 types
- Allow half float literals
- Correct two errors of double literal parse in HLSL: extension check and
postfix
2018-03-12 23:15:11 +08:00
John Kessenich
66011cb2c2
SPV: Implement Vulkan 1.1 features and extensions.
2018-03-06 16:12:04 -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
88e22a6090
Fix #1079 : don't give error when macro() name used without open (.
2017-11-02 06:48:32 -06:00
Aaron Muir Hamilton
9d4a1b24e9
Preprocessor: Evaluate INT_MIN % -1 to 0.
2017-10-24 10:59:01 +00: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
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
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
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
xavier
eb71cdd5bb
HLSL: fix preprocessor concatenation behaviour.
...
Fix #772 .
2017-08-29 00:35:01 +02:00
Rex Xu
cabbb788b4
Implement extension GL_AMD_gpu_shader_int16
...
- Add int16 types (int16_t, uint16_t, i16vec, u16vec).
- Add int16 support to GLSL operators.
- Add int16 type conversions (to int16, from int16).
- Add int16 built-in functions.
2017-06-09 17:11:23 +08:00
John Kessenich
4d5bcd3162
HLSL: Allow macro expansions to create the 'defined' operator.
2017-06-08 17:12:56 -06:00
John Kessenich
2eb135506a
GLSL: Fix #396 : Error when 'defined' comes from macro expansion.
2017-06-07 17:19:08 -06:00
John Kessenich
99f289d438
Merge pull request #899 from antiagainst/rm-empty-cpps
...
Remove empty cpp files
2017-06-03 15:29:06 -06:00