Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-08Merge pull request #2055 from KhronosGroup/fix-2053HEADmasterHans-Kristian Arntzen
Handle ShaderDebugInfo non-semantic extension.
2022-11-08Handle ShaderDebugInfo non-semantic extension.Hans-Kristian Arntzen
2022-11-02Merge pull request #2052 from KhronosGroup/hlsl-mesh-shader-extHans-Kristian Arntzen
Merge HLSL support for VK_EXT_mesh_shader
2022-11-02HLSL: Fix test for non-block per-primitive IO.Hans-Kristian Arntzen
Force gl_in_out path for HLSL as well when mesh shaders are used.
2022-11-02HLSL: Do not support ClipCull size > 4 in mesh shaders.Hans-Kristian Arntzen
The array mechanism breaks DXC which needs to observe that all components have been written. Uninitialized outputs will be undefined. Resort to simple vector instead.
2022-11-02GLSL: Add test for mesh with non-block builtin IO.Hans-Kristian Arntzen
2022-11-02HLSL: Handle case where PerVertex block is not used.Hans-Kristian Arntzen
2022-11-02HLSL: Make sure to test deeply nested functions in mesh shaders.Hans-Kristian Arntzen
2022-11-02HLSL: Some cleanups and fixes in analyze_meshlet_writes.Hans-Kristian Arntzen
2022-11-02HLSL: Fix some warnings from review.Hans-Kristian Arntzen
2022-11-02HLSL: Fix-up some style issues from review.Hans-Kristian Arntzen
2022-11-02HLSL: Add missing reference for mesh shader test.Hans-Kristian Arntzen
2022-11-02Fixup glslang reference.Hans-Kristian Arntzen
2022-11-02HLSL: Implement VK_EXT_mesh_shaderTry
2022-11-02Merge pull request #2050 from cdavis5e/op-spec-constant-op-composite-insertHans-Kristian Arntzen
MSL: Implement `CompositeInsert` `OpSpecConstantOp`.
2022-11-02MSL: Implement `CompositeInsert` `OpSpecConstantOp`.Chip Davis
This op creates a new composite constant with one element replaced. So, we reconstruct the `SPIRConstant` for the composite constant, but with one of the IDs replaced. Constant initializer lists are memoized for when the result of a `CompositeInsert` is used in another `CompositeInsert`. (I wanted to add a test case for GLSL as well, but for two things: 1. `glslang` in Vulkan mode chokes on the first constant array, insisting that its initializer needs to be a constant. [Bug in glslang?] 2. The declarations for the buffers used by the shader aren't emitted, regardless of whether Vulkan mode is enabled.) Fixes five tests under `dEQP-VK.spirv_assembly.instruction.*.opspecconstantop.vector_related`.
2022-11-01Merge pull request #2051 from KhronosGroup/roll-glslang-depHans-Kristian Arntzen
Roll glslang dependency.
2022-11-01Roll glslang dependency.Hans-Kristian Arntzen
2022-10-31Merge pull request #2049 from KhronosGroup/fix-2046Hans-Kristian Arntzen
MSL: Handle implicit integer promotion rules.
2022-10-31MSL: Handle implicit integer promotion rules.Hans-Kristian Arntzen
MSL inherits the behavior of C where arithmetic on small types are implicitly converted to int. SPIR-V does not have this behavior, so make sure that arithmetic results are handled correctly.
2022-10-26Merge pull request #2044 from KhronosGroup/fix-2038Hans-Kristian Arntzen
MSL: Fix restrict vs __restrict incompatibility.
2022-10-26MSL: Fix restrict vs __restrict incompatibility.Hans-Kristian Arntzen
restrict was supported, but it broke in MSL 3.0. __restrict works on all versions, so opt for that instead. Also check for RestrictPointer decoration and refactor to_restrict() to not take optional parameter to make it more obvious when implied space character is added.
2022-10-26Merge pull request #2045 from KhronosGroup/fix-2037Hans-Kristian Arntzen
HLSL: Add option to bind vertex input smemantics by name.
2022-10-26Merge pull request #2043 from KhronosGroup/fix-2040Hans-Kristian Arntzen
MSL: Handle partial access chains with array-of-UBO/SSBO.
2022-10-26HLSL: Add option to bind vertex input smemantics by name.Hans-Kristian Arntzen
2022-10-26MSL: Handle partial access chains with array-of-UBO/SSBO.Hans-Kristian Arntzen
Need to consider the backing variable, not just plain SPIRVariable.
2022-10-19Merge pull request #2039 from cdavis5e/raw-buffer-tess-inputHans-Kristian Arntzen
Raw buffer tess input
2022-10-19MSL: Account for composite types when assigning locations.Chip Davis
In tessellation shaders, we call `add_plain_member_variable_to_interface_block()` on composite types, since we are using buffers for I/O and can use nested structs/arrays here. In those cases, we need to make sure the next location is incremented by the total amount consumed by the entire composite. Fixes six more tests in the CTS, under `dEQP-VK.tessellation.user_defined_io.per_vertex_block.*`.
2022-10-19MSL: Don't flatten arrayed per-patch output blocks in tessellation shaders.Chip Davis
Flattening doesn't play well with dynamic indices. In this case, it's better to leave it as an array of structs. (I wanted to do this for named blocks generally. Trouble is, the builtin `gl_out` block is *also* a named block...) Fixes six more CTS tests, under `dEQP-VK.tessellation.user_defined_io.per_patch_block_array.*`.
2022-10-19MSL: Support "raw" buffer input in tessellation evaluation shaders.Chip Davis
Using vertex-style stage input is complex, and it doesn't support nesting of structures or arrays. By using raw buffer input instead, we get this support "for free," and everything becomes much simpler. Arguably, this is the way I should've done this in the first place. Eventually, I'd like to make this the default, and then remove the option altogether. (And I still need to do that with `multi_patch_workgroup`...) Should help fix 66 tests in the Vulkan CTS, under the following trees: - `dEQP-VK.pipeline.*.interface_matching.*` - `dEQP-VK.tessellation.user_defined_io.*` - `dEQP-VK.clipping.user_defined.*`
2022-10-03Merge pull request #2035 from KhronosGroup/fix-2032sdk-1.3.231.1sdk-1.3.231.0sdk-1.3.231Hans-Kristian Arntzen
HLSL: Improve support for VertexInfo aux struct.
2022-10-03Merge pull request #2034 from KhronosGroup/fix-2028Hans-Kristian Arntzen
MSL: Expose way to query if a buffer needs array length.
2022-10-03Merge pull request #2033 from KhronosGroup/fix-2029Hans-Kristian Arntzen
Add reflection support for shader record buffers.
2022-10-03HLSL: Improve support for VertexInfo aux struct.Hans-Kristian Arntzen
Add concept of explicit bindings for aux structs and allows query if these aux structs are required.
2022-10-03MSL: Expose way to query if a buffer needs array length.Hans-Kristian Arntzen
2022-10-03Add reflection support for shader record buffers.Hans-Kristian Arntzen
Reflect naming scheme in a context sensitive way that matches the frontend. GLSL -> use block name HLSL (DXC) -> use instance name.
2022-10-03Merge pull request #2027 from billhollings/msl-opstore-addr-space-castHans-Kristian Arntzen
MSL: Emit correct address space when casting during OpStore.
2022-09-23MSL: Emit correct address space when casting during OpStore.Bill Hollings
When storing to local variable (eg. OpCopyLogical), the default device address space used during casts is illegal. Determine correct address space based on variable type.
2022-09-22Merge pull request #2025 from KhronosGroup/fix-2009Hans-Kristian Arntzen
MSL: Block 64-bit atomics and fix some reserved keywords
2022-09-21MSL: Add more keywords to reserved set.fix-2009Hans-Kristian Arntzen
Address space qualifiers must also be banned.
2022-09-21MSL: Report unsupported 64-bit atomics.Hans-Kristian Arntzen
Overall just broken in some cases. And lack of fetch_* variants for a few opcodes is also broken. When officially supported in some future MSL version, this can be lifted.
2022-09-21Merge pull request #2024 from KhronosGroup/msl-descriptor-aliasingHans-Kristian Arntzen
MSL: Do not attempt to alias push constants.
2022-09-21MSL: Do not attempt to alias push constants.Hans-Kristian Arntzen
2022-09-20Merge pull request #2023 from KhronosGroup/msl-descriptor-aliasingHans-Kristian Arntzen
MSL: Handle descriptor aliasing of raw buffer descriptors.
2022-09-20MSL: Handle descriptor aliasing of raw buffer descriptors.Hans-Kristian Arntzen
It is allowed to redeclare descriptors with different types in Vulkan. MSL in general does not allow this, but for raw buffers, we can cast the reference type at the very least. For typed resources we are kinda hosed. Without descriptor indexing's PARTIALLY_BOUND_BIT, descriptors must be valid if they are statically accessed, so it would not be valid to access differently typed aliases unless that flag is used. There might be a way to reinterpret cast descriptors, but that seems very sketchy. Implements support for: - Single discrete descriptor - Single argument buffer descriptor - Array of argument buffer descriptors Other cases are unimplemented for now since they are extremely painful to unroll.
2022-09-19Merge pull request #2021 from siegelaaron94/opengles_texture1d_textureSizeHans-Kristian Arntzen
GLSL: Account for ES sampler1D to sampler2D promotion in textureSize.
2022-09-15GLSL: Account for ES sampler1D to sampler2D promotion in textureSize.Aaron Siegel
2022-09-15Merge pull request #2018 from atyuwen/masterHans-Kristian Arntzen
MSL: only fix up gl_FragCoord if really necessary.
2022-09-15Merge pull request #2019 from ↵Hans-Kristian Arntzen
billhollings/msl-OpPtrEqual-OpPtrNotEqual-OppPtrDiff MSL: Support OpPtrEqual, OpPtrNotEqual, and OpPtrDiff.
2022-09-14MSL: Support OpPtrEqual, OpPtrNotEqual, and OpPtrDiff.Bill Hollings
- Add CompilerMSL::emit_binary_ptr_op() and to_ptr_expression() to emit binary pointer op. Compare matrix addresses without automatic transpose() conversion, to avoid error taking address of temporary copy. - Add Compiler::add_active_interface_variable() to also track active interface vars in the entry point for SPIR-V 1.4 and above. - For OpPtrAccessChain that ends in array element, use Element as offset to existing index, otherwise it will access into array dimension that doesn't exist. - Dereference pointer function call arguments. Ultimately, this dereferencing is actually backwards, and in future, we should aim to properly support passing pointer variables between functions, but such a refactoring was beyond the scope here. - Use [] to declare array of pointers, as array<T*> is not supported in MSL. - Add unit test shaders.