Commit Graph

2862 Commits

Author SHA1 Message Date
John Kessenich
1323bf8e39
Merge pull request #1480 from dneto0/stringify
Use our own SPIRV-Tools message stringifier
2018-08-20 08:07:12 -07:00
David Neto
9fd2a8cdfc Use our own SPIRV-Tools message stringifier
Stop including an internal SPIRV-Tools header. It has been
deleted.

Fixes #1477
2018-08-20 10:36:27 -04:00
John Kessenich
93dbbdee36
Merge pull request #1474 from KhronosGroup/pure-8-16-bit-capability
SPV: only declare the pure 8/16-bit capabilities when needed.
2018-08-17 17:00:04 -07:00
John Kessenich
09d7672dbc
Merge pull request #1476 from greg-lunarg/kg24
Update SPIRV-Tools known good.
2018-08-17 12:46:32 -07:00
GregF
1676e73dd2 Update SPIRV-Tools known good.
Includes:

    Update OpPhi instructions after splitting block. (#1783)
    Don't change decorations and names in merge return. (#1777)
    Transform to combine consecutive access chains
    Handle undef literal value in vector shuffle
    Fix block ordering in dead branch elim
    Fix finding constant with particular type. (#1724)
    Fix infinite loop while folding OpVectorShuffle (#1722)
    Fix size error when folding vector shuffle. (#1721)
    Layout validation: Permit {vec3; float} tight packing
2018-08-17 10:56:37 -06:00
John Kessenich
31aa3d6019 SPV: only declare the pure 8/16-bit capabilities when needed.
Only when operations stray outside the 8/16-bit storage-capabilities
are the general (pure 8/16-bit) capabilities needed.
2018-08-16 15:54:21 -06:00
John Kessenich
149afc3930 SPV: More corrections of <id> versus "immediate" operands. 2018-08-14 13:31:43 -06:00
John Kessenich
228e964bcc SPV: Correct SPIR-V operands for <id> versus immediate. 2018-08-13 21:37:59 -06:00
John Kessenich
72f8c69097 Bump version patch level. 2018-08-13 01:32:56 -06:00
John Kessenich
251901ac8a Fix #1471: Merge shift amounts for different sets: --stb ... --std ... 2018-08-12 22:08:53 -06:00
John Kessenich
ade8bbbf5f Fix #1393: rationalize usage, in the spirit of #1393.
Order is kept about the same.
2018-08-12 21:24:55 -06:00
John Kessenich
ec5c11931b Bump revision. 2018-08-09 14:17:52 -06:00
John Kessenich
640bd0964f Fix #1468: Add command-line --entry-point support, same as existing -e. 2018-08-09 14:15:00 -06:00
John Kessenich
56a75975e3 Fix #1469: Make it easier to copy/paste build instructions. 2018-08-09 13:58:12 -06:00
John Kessenich
c4510e5ebc
Merge pull request #1466 from Kangz/warning_fixes
Fix -Wignored-qualifier and -Wunused-variable warnings
2018-08-09 12:49:56 -07:00
John Kessenich
242c28f21c
Merge pull request #1470 from antiagainst/patch-2
Appveyor CI: build artifacts for x64
2018-08-09 12:34:46 -07:00
Lei Zhang
fb4165b5dc
Appveyor CI: build artifacts for x64
Fixes https://github.com/KhronosGroup/glslang/issues/1396
2018-08-09 13:36:17 -04:00
Corentin Wallez
e70614223f Fix -Wignored-qualifier and -Wunused-variable warnings 2018-08-09 14:54:33 +02:00
John Kessenich
e0bc65b2c1
Merge pull request #1460 from KhronosGroup/postprocess
Non-Functional: Add postprocess as more robust way to add capabilities
2018-08-06 00:46:27 -07:00
John Kessenich
f04c51b3bd Non-Functional: Add postprocess as more robust way to add capabilities
When capabilities are needed for specific SPIR-V instructions, it is
fragile to do so based on GLSL/AST usage; it should be based on actual
instructions they got translated to.
2018-08-03 15:56:12 -06:00
John Kessenich
29619b2312
Merge pull request #1459 from dgkoch/dgkoch_build_fixes4
Fix various build warnings/errors
2018-08-01 14:28:57 -07:00
Daniel Koch
883607d5fc Fix build warnings/errors:
1) On some old versions of MSVC:

	glslang\MachineIndependent\Constant.cpp(187): warning C4056: overflow in floating-point constant arithmetic

On this platform the definition of INFINITY is as follows:

	#ifndef _HUGE_ENUF
	   #define _HUGE_ENUF  1e+300  // _HUGE_ENUF*_HUGE_ENUF must overflow
	#endif
	#define INFINITY   ((float)(_HUGE_ENUF * _HUGE_ENUF))

Moving the negation outside the cast seems to resolve that issue.

2) Some Linux compilers were unhappy with lines 226/227

	glslang/MachineIndependent/Constant.cpp: In member function 'virtual glslang::TIntermTyped* glslang::TIntermConstantUnion::fold(glslang::TOperator, const glslang::TIntermTyped*) const':
	glslang/MachineIndependent/Constant.cpp:226:99: error: integer overflow in expression [-Werror=overflow]
			 else if (rightUnionArray[i].getIConst() == -1 && leftUnionArray[i].getIConst() == -(int)0x80000000)
													   ^~~~~~~~~~~~~~~~
	glslang/MachineIndependent/Constant.cpp:227:48: error: integer overflow in expression [-Werror=overflow]
			     newConstArray[i].setIConst(-(int)0x80000000);
	                                                ^~~~~~~~~~~~~~~~

Moving the negation to the right side of the cast made those happy, but then some Windows compilers were unhappy:

	glslang\MachineIndependent\Constant.cpp(226): warning C4146: unary minus operator applied to unsigned type, result still unsigned
	glslang\MachineIndependent\Constant.cpp(227): warning C4146: unary minus operator applied to unsigned type, result still unsigned

which required adding on the "ll" suffix.

3) Android builds where unhappy with line 242:

	glslang/MachineIndependent/Constant.cpp:242:100: error: comparison of integers of different signs: 'long long' and 'unsigned long long' [-Werror,-Wsign-compare]
        	        else if (rightUnionArray[i].getI64Const() == -1 && leftUnionArray[i].getI64Const() == -0x8000000000000000ll)
                	                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~
	1 error generated.

Adding an explicit (long long) cast resolved this.
And the negation needs to be on the right side of the cast otherwise linux
builds are unhappy as in (2).

4) Android builds are unhappy with out of order initializers:

	glslang/MachineIndependent/reflection.h:60:84: error: field 'type' will be initialized after field 'stages' [-Werror,-Wreorder]
		glDefineType(pGLDefineType), size(pSize), index(pIndex), counterIndex(-1), type(pType.clone()), stages(EShLanguageMask(0)) { }
											   ^
	1 error generated.


Change-Id: Ic9a05fa7912498284885113d8b051f93f822f62b
2018-07-27 17:20:49 -04:00
John Kessenich
e99a26810f
Merge pull request #1457 from KhronosGroup/parse-floats
Tests: Add more string -> float tests. Related to #1456.
2018-07-27 12:46:35 -07:00
John Kessenich
7cdc24c06c PP: Address #1456: Strip float suffixes before using platform library. 2018-07-27 13:08:05 -06:00
John Kessenich
994d4bf325 Tests: Add more string -> float tests. Related to #1456. 2018-07-27 13:06:54 -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
13803b185d Bump revision. 2018-07-25 15:34:01 -06:00
John Kessenich
6e382f63b4
Merge pull request #1455 from TiemoJung/nullpointer_crash_fix
Fixes a crash when in/out varying variable had no semantic name and a…
2018-07-25 11:13:05 -07:00
John Kessenich
e161cc11f7 GLSL: No more restrictions on (non)shadow sampler construction.
Match https://github.com/KhronosGroup/GLSL/pull/22
2018-07-25 12:11:04 -06:00
t.jung
9f8cb850e4 Fixes a crash when in/out varying variable had no semantic name and an error was reported in ioremapper phase when the variable was rejected 2018-07-25 13:43:14 +02:00
John Kessenich
62faea79d7
Merge pull request #1451 from KhronosGroup/shadow-forces-depth
GLSL/SPV: If a texture is used with a shadow sampler, force 'shadow'.
2018-07-23 16:41:00 -07:00
John Kessenich
11da9eed5d HLSL: Fix #1445: distance() works on scalars. 2018-07-23 16:55:01 -06:00
John Kessenich
56b33196a9
Merge pull request #1453 from greg-lunarg/kg22
Update spirv-tools known good
2018-07-23 15:03:31 -07:00
John Kessenich
7d4c9a07b5 GLSL: Construct shadow texture from non-shadow sampler.
Tracks https://github.com/KhronosGroup/GLSL/pull/22.
2018-07-23 15:59:09 -06:00
John Kessenich
0339af3c1f GLSL/SPV: If a texture is used with a shadow sampler, force 'shadow'.
Fixes #854. But, only good if we are not trying to use the same
texture for both shadow and non-shadow constructors.

Force the type of the texture to have 'shadow' set when it is
constructed with a samplerShadow.
2018-07-23 15:58:32 -06:00
GregF
3f05beddc8 Update spirv-tools known good
Includes the following:

Add Vulkan 1.1 capability sets
Don't merge types of resources
Remove stores of undef.
Make sure the constant folder get the correct type.
2018-07-23 11:57:16 -06:00
John Kessenich
fa4952c31c Merge branch 'zeux-master' 2018-07-20 17:13:19 -06:00
John Kessenich
5a7321eb03 Merge branch 'master' of https://github.com/zeux/glslang into zeux-master 2018-07-20 17:11:44 -06:00
John Kessenich
81793ad2a3
Merge pull request #1450 from KhronosGroup/link-merge-all
Link: Merge all downstream consumed intermediate modes.
2018-07-20 12:40:32 -07:00
John Kessenich
b617e14acb Link: Merge all the settings in TIntermediate.
Fixes #1309.
2018-07-20 12:34:59 -06:00
John Kessenich
5d6b567950
Merge pull request #1436 from karl-lunarg/karl-ccache
build: Add ccache option to CMake config
2018-07-18 20:39:31 -07:00
John Kessenich
8103cb9580
Merge pull request #1446 from KhronosGroup/spv-link
Link/SPV: Correct symbol IDs on merging ASTs to a single coherent space
2018-07-18 17:29:17 -07:00
John Kessenich
ebd989dd58
Merge pull request #1437 from mattparks/patch-2
CMake options for postfix and SPVRemapper.
2018-07-18 17:15:32 -07:00
John Kessenich
34e56891b0 Merge branch 'jeffbolznv-missing_descriptor_indexing_extension' 2018-07-18 18:11:16 -06:00
John Kessenich
4137241a04 Merge branch 'missing_descriptor_indexing_extension' of https://github.com/jeffbolznv/glslang into jeffbolznv-missing_descriptor_indexing_extension 2018-07-18 18:10:45 -06:00
John Kessenich
41436ad204 Link/SPV: Correct symbol IDs on merging ASTs to a single coherent space
This is one step in providing full linker functionality for creating
correct SPIR-V from multiple compilation units for the same stage.
(This was the only remaining "hard" part. The rest should be simple.)
2018-07-18 18:07:41 -06:00
John Kessenich
806af25f74
Merge pull request #1442 from dneto0/use-forked-android-ndk-repo
NDK build: Use NDK r17b and its own CMake toolchain file
2018-07-12 15:07:51 -07:00
Jeff Bolz
c140b96892 Add missing OpExtension SPV_EXT_descriptor_indexing for dynamic indexing capabilities 2018-07-12 16:51:18 -05:00
John Kessenich
e7f9caeac4 Errors and Build: Fix build warnings, which also improved error messages. 2018-07-12 15:11:07 -06:00
David Neto
4aeca2df33 NDK build: Use NDK r17b and its own CMake toolchain file
More recent NDK releases have their own CMake toolchain file.
Use it.

Also, download the NDK from github.com:dneto0/android-ndk.
That is a fork of the repo we used to use, but we have more
control over how long it stays stable.
2018-07-12 14:56:29 -04:00