Commit Graph

3800 Commits

Author SHA1 Message Date
Hans-Kristian Arntzen
61bbcb2705
Merge pull request #2232 from KhronosGroup/fix-2228
MSL: Add divide to reserved function names.
2023-11-27 16:31:01 +01:00
Hans-Kristian Arntzen
81c047c3ed MSL: Use more appropriate padded types. 2023-11-27 16:30:24 +01:00
Hans-Kristian Arntzen
57dbfa0400 MSL: Support std140 half matrices and arrays.
Super awkward since there is no clean way to express this.
2023-11-27 15:28:20 +01:00
Hans-Kristian Arntzen
dddabb9c11 MSL: Add divide to reserved function names. 2023-11-27 12:14:30 +01:00
Hans-Kristian Arntzen
42299f92ef
Merge pull request #2230 from chirsz-ever/chirsz/custom-float-formater
Allow to customize float literals in output
2023-11-24 12:47:51 +01:00
Hans-Kristian Arntzen
3e8e761e49
Apply suggestions from code review 2023-11-24 12:46:50 +01:00
Hans-Kristian Arntzen
94f4c48faf
Apply suggestions from code review 2023-11-24 12:46:28 +01:00
chirsz-ever
20dd53b312
Allow to customize float literals in output 2023-11-22 22:17:24 +08:00
chirsz-ever
ec7a23c826
Add "build" to .gitignore 2023-11-22 20:05:42 +08:00
Hans-Kristian Arntzen
42aac916ab
Merge pull request #2227 from elizagamedev/exv/essl1-uint-bool-hack
Workaround for generating bool uniforms in ESSL1
2023-11-16 15:47:51 +01:00
Hans-Kristian Arntzen
bf059200be
Only use lowp path for legacy ES 2023-11-16 14:00:48 +01:00
Hans-Kristian Arntzen
0e9bc69128
Review nit, update brace placement 2023-11-16 14:00:00 +01:00
Eliza Velasquez
93150ed7fb Workaround for generating bool uniforms in ESSL1
Fixes #2223.
2023-11-13 15:23:36 -08:00
Hans-Kristian Arntzen
4818f7e7ef
Merge pull request #2222 from billhollings/fix-runtime-array-regression
MSL: Fix regression error in argument buffer runtime arrays.
2023-11-03 11:18:21 +01:00
Bill Hollings
4a42191240 MSL: Fix regression error in argument buffer runtime arrays.
Argument buffers can contain multiple runtime arrays if they have fixed
lengths as specified by the binding API. Regression error had assumed each
runtime array is in separate argument buffer with undefined array length.

- Add CompilerMSL::is_var_runtime_size_array() to include test for
  setting of array length via CompilerMSL::add_msl_resource_binding().

- Fixed unrelated test case MSL compile syntax failure when acceleration
  structure is the first entry point function argument (unrelated).
2023-11-02 23:53:59 -04:00
Hans-Kristian Arntzen
637cff3d05
Merge pull request #2220 from KhronosGroup/pr-2208
Land PR 2208 and fix more issues with sample mask
2023-10-23 15:21:23 +02:00
Hans-Kristian Arntzen
2fba284b4e MSL: Improve handling of sample masks. 2023-10-23 14:40:28 +02:00
Hans-Kristian Arntzen
56bdcfaf0e Add test for sample mask bulk load/store. 2023-10-23 12:45:08 +02:00
Hans-Kristian Arntzen
0bedb69b02 HLSL: Declare sample mask array with proper module type.
GLSL uses int[] and HLSL emits uint[], and to deal properly
with array copies where we lose ability to rewrite arithmetic types,
we need to declare with proper type.
2023-10-23 12:29:25 +02:00
Hans-Kristian Arntzen
f12ee5e0a4 Merge remote-tracking branch 'epic/fixes_hlsl' 2023-10-23 11:54:49 +02:00
Laura Hermanns
5d7ee6ad11 Fix declaration of gl_SampleMaskIn[1] in HLSL backend. 2023-10-17 09:11:09 -04:00
Hans-Kristian Arntzen
2de1265fca
Merge pull request #2218 from KhronosGroup/pr-2217
Merge PR 2217
2023-10-16 12:19:24 +02:00
Hans-Kristian Arntzen
a4b8553982 Style fixups. 2023-10-16 11:55:41 +02:00
Hans-Kristian Arntzen
f30d280e7b Fixup stray comments in test_shaders.sh. 2023-10-16 11:52:21 +02:00
Hans-Kristian Arntzen
2d072c6828 Merge branch 'metal-3-1-regression-fix' of https://github.com/billhollings/SPIRV-Cross 2023-10-16 11:52:11 +02:00
Bill Hollings
16fbf8872a MSL: Workaround Metal 3.1 regression bug on recursive input structs.
Metal 3.1 introduced a Metal regression bug which causes an infinite recursion
crash during Metal's analysis of an entry point input structure that itself
contains internal recursion. This patch works around this by replacing the
recursive input declaration with a alternate variable of type void*, and
then casting to the correct type at the top of the entry point function.

- Add CompilerMSL::Options::replace_recursive_inputs to enable
  replacing recursive input.
- Add Compiler::type_contains_recursion() to determine if a struct
  contains internal recursion, and add custom Decorations to mark
  such structs, to short-cut future similar checks.
- Replace recursive input struct declarations with void*,
  and emit a recast to correct type at top of entry function.
- Add unit test.
- Compiler::type_is_top_level_block() remove hardcode reference to spirv_cross
  namespace, as it interferes with configurable namespaces (unrelated).
2023-10-14 14:46:47 -04:00
Hans-Kristian Arntzen
105d5a8a79 Fix stray namespace issue. 2023-10-14 12:36:49 +02:00
Hans-Kristian Arntzen
724433d729
Merge pull request #2216 from KhronosGroup/buffer-reference-2
GLSL: Use buffer_reference2 instead of 1.
2023-10-11 14:20:36 +02:00
Hans-Kristian Arntzen
082b1df25f
Merge pull request #2215 from KhronosGroup/fix-2210
GLSL: Fix and workaround some awkward code patterns
2023-10-11 14:20:11 +02:00
Hans-Kristian Arntzen
255ff2b19c GLSL: Use buffer_reference2 instead of 1.
Supports more syntax.
2023-10-11 14:18:36 +02:00
Hans-Kristian Arntzen
be944258be GLSL: Ignore bogus constant/undefs which use block types.
This is banned in more recent SPIR-V.
We cannot implement this in any reasonable way since block types don't
participate as normal types in GLSL.
2023-10-11 13:48:25 +02:00
Hans-Kristian Arntzen
75620181bc GLSL: Handle empty block declarations.
Similar fix as for structs.
2023-10-11 13:09:55 +02:00
Hans-Kristian Arntzen
73726f37c5 HLSL: Add missing reference output file. 2023-10-11 13:03:08 +02:00
Hans-Kristian Arntzen
09ba765844 MSL: Use powr instead of pow.
powr's additional UB rules match SPIR-V.
2023-10-11 12:55:12 +02:00
Hans-Kristian Arntzen
79401259fd
Merge pull request #2207 from etang-cw/CacheSpirvTools
Improve CI build times
2023-10-10 12:14:39 +02:00
Hans-Kristian Arntzen
1f289d38b2
Merge pull request #2211 from EpicGames/main
Add Natvis file with debug information for VectorView and SmallVector.
2023-10-10 12:03:36 +02:00
Laura Hermanns
5071f6c38e Add Natvis file with debug information for VectorView and SmallVector. 2023-10-09 14:01:53 -04:00
Evan Tang
f9dd8099fb Parallelize Github Actions builds 2023-10-03 15:29:02 -05:00
Evan Tang
5de6ae9d1e Cache externals in GitHub Actions 2023-10-03 15:29:02 -05:00
Hans-Kristian Arntzen
37fee00a71
Merge pull request #2205 from Try/hlsl-ssbo-array-store-fix
Fix unroll, when storing to pointer to array
2023-10-02 12:33:46 +02:00
Try
967ad0bb4d Fix unroll, when storing to pointer to array
#fixed #2196
2023-09-28 23:58:51 +02:00
Hans-Kristian Arntzen
6e1fb9b09e
Merge pull request #2203 from Try/msl-atomics-fix
MSL: fix extraction of global variables, in case of atomics
2023-09-25 10:39:13 +02:00
Hans-Kristian Arntzen
1870ec752c
Merge pull request #2201 from Try/msl-rayquery-mutability-fix
MSL: fix mutability for rayQueryEXT parameters
2023-09-25 10:36:21 +02:00
Try
43a59b7cff fix extraction of global variables, in case of atomics 2023-09-19 21:44:57 +02:00
Try
da9c861ed0 MSL: fix mutability for rayQueryEXT parameters 2023-09-16 19:33:27 +02:00
Hans-Kristian Arntzen
5e963d62fa
Merge pull request #2197 from Try/rich-descriptor-fixup
Fixup check for SPVFuncImplVariableSizedDescriptor
2023-09-12 11:42:26 +02:00
Try
8af391ec5d check for SPVFuncImplVariableSizedDescriptor 2023-09-06 22:32:42 +02:00
Hans-Kristian Arntzen
54997fb4bc
Merge pull request #2193 from KhronosGroup/fix-2192
MSL: Workaround bizarre crash on macOS.
2023-08-28 21:53:24 +02:00
Hans-Kristian Arntzen
b17dd5895a MSL: Workaround bizarre crash on macOS. 2023-08-28 11:54:58 +02:00
Hans-Kristian Arntzen
7ba6f5ce90
Merge pull request #2190 from hiteshbosamiya/SC-2189
[SC-2189] Compiler::get_shader_resources() does not return all uniforms
2023-08-28 11:33:00 +02:00