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-03-03Merge pull request #1881 from KhronosGroup/relax-nan-checksHans-Kristian Arntzen
Add relax_nan_checks options.
2022-03-03Add relax_nan_checks options.Hans-Kristian Arntzen
Makes codegen from typical D3D emulation SPIR-V more readable. Also makes cross compilation with NotEqual more sensible. It's very rare to actually need the strict NaN-checks in practice. Also, glslang now emits UnordNotEqual by default it seems, so give up trying to assume OrdNotEqual. Harmonize for UnordNotEqual as the sane default.
2022-03-03Merge pull request #1880 from KhronosGroup/fix-1879Hans-Kristian Arntzen
Handle OpTerminateInvocation.
2022-03-03Merge pull request #1878 from mysterymath/moveHans-Kristian Arntzen
Qualify std::move.
2022-03-03Handle OpTerminateInvocation.Hans-Kristian Arntzen
2022-03-03Merge branch 'msl-add-nested-structs-to-io-blocks-squash'Hans-Kristian Arntzen
2022-03-03Fix formatting nits from review.Hans-Kristian Arntzen
2022-03-03MSL: Document clarification of location incrementing.Bill Hollings
2022-03-03MSL: Fix var names in test shaders to avoid reserved identifiers.Bill Hollings
2022-03-03MSL: Non-functional fixes from PR code review.Bill Hollings
2022-03-03MSL: Support input/output blocks containing nested struct arraysBill Hollings
Fixes numerous CTS tests of types dEQP-VK.pipeline.interface_matching.vector_length.member_of_*, passing complex nested structs between stages as stage I/O. - Make add_composite_member_variable_to_interface_block() recursive to allow struct members to contain nested structs, building up member names and access chains recursively, and only add the resulting flattened leaf members to the synthetic input and output interface blocks. - Recursively generate individual location numbers for the flattened members of the input/output block. - Replace to_qualified_member_name() with append_member_name(). - Update add_variable_to_interface_block() to support arrays as struct members, adding a member to input and output interface blocks for each element of the array. - Pass name qualifiers to add_plain_member_variable_to_interface_block() to allow struct members to be arrays of structs, building up member names and access chains, and adding multiple distinct flattened leaf members to the synthetic input and output interface blocks. - Generate individual location numbers for the individual array members of the input/output block. - SPIRVCrossDecorationInterfaceMemberIndex references the index of a member of a variable that is a struct type. The value is relative to the variable, and for structs nested within that top-level struct, the index value needs to take into consideration the members within those nested structs. - Pass var_mbr_idx to add_plain_member_variable_to_interface_block() and add_composite_member_variable_to_interface_block(), start at zero for each variable, and increment for each member or nested member within that variable. - Add unit test shaders-msl/vert/out-block-with-nested-struct-array.vert - Add unit test shaders-msl/vert/out-block-with-struct-array.vert - Add unit test shaders-msl/tese/in-block-with-nested-struct.tese
2022-03-03Qualify std::move.Daniel Thornburgh
Clang added -Wunqualified-std-cast-call in https://reviews.llvm.org/D119670, which warns on unqualified std::move and std::forward calls. This change qualifies these calls to allow the project to build on HEAD Clang -Werror.
2022-02-28Merge pull request #1873 from KhronosGroup/fix-1861Hans-Kristian Arntzen
HLSL: Do not emit VPOS fixup unless position is active.
2022-02-28Merge pull request #1872 from KhronosGroup/fix-1867Hans-Kristian Arntzen
MSL: Refactor and fix use of quadgroup vs simdgroup.
2022-02-28HLSL: Do not emit VPOS fixup unless position is active.Hans-Kristian Arntzen
2022-02-28MSL: Refactor and fix use of quadgroup vs simdgroup.Hans-Kristian Arntzen
2022-02-28Merge pull request #1870 from abrachet/masterHans-Kristian Arntzen
Qualify move as std::move
2022-02-26Qualify move as std::moveAlex Brachet
Seeing downstream errors: "spirv_common.hpp:692:19: error: unqualified call to std::move"
2022-02-25Merge pull request #1869 from xndcn/mslHans-Kristian Arntzen
MSL: append entry point args to local variable names to avoid conflicts
2022-02-24MSL: append entry point args to local variable names to avoid conflictsxndcn
2022-02-16Merge pull request #1862 from flokart-world/feature/flatten-ubo-for-hlslHans-Kristian Arntzen
HLSL: Make --flatten-ubo work correctly
2022-02-16Merge pull request #1863 from KhronosGroup/various-fixesHans-Kristian Arntzen
Various fixes
2022-02-16HLSL: Make --flatten-ubo work correctlyShintaro Sakahara
2022-02-16Add more scenarios where we can guarantee forward progress.Hans-Kristian Arntzen
The patterns where we force temporary due to invalid/overused expression -> recompile should be seen as making forward progress, and there are very rare scenarios where these recompiles can cascade into many loops. Refactor this style of logic into a new function which is equivalent to handle_invalid_expression().
2022-02-16Add debug option to modify maximum number of compile iterations.Hans-Kristian Arntzen
Should be seen as a hack, but it's pragmatic in some scenarios.
2022-02-16Fix regression from adding 64-bit switch support.Hans-Kristian Arntzen
Missed some cases where we did not handle the loaded type width properly.
2022-02-16Do not emit hoisted access chain temporaries unless backend supports it.Hans-Kristian Arntzen
This can happen for access chains into buffer objects which were marked as potentially hoisted, but it's benign in almost all cases.
2022-02-16GLSL: Ensure correct signed integer type for more texture functions.Hans-Kristian Arntzen
2022-02-04Merge pull request #1860 from KhronosGroup/docs-updateHans-Kristian Arntzen
Update documentation for descriptor set support in MSL/HLSL.
2022-02-04Update documentation for descriptor set support in MSL/HLSL.Hans-Kristian Arntzen
Ancient outdated README.
2022-02-02[Spirv_msl] Fix normalize on half3/half2 (#1856)Rodolphe
When emitting a normalize OP, conditionally stop using the fast namespace
2022-01-18Merge pull request #1852 from KhronosGroup/fix-1850sdk-1.3.204.1sdk-1.3.204.0sdk-1.3.204Hans-Kristian Arntzen
MSL: Rethink how opaque descriptors are passed to leaf functions.
2022-01-18Merge pull request #1851 from KhronosGroup/fix-1835Hans-Kristian Arntzen
Handle aliased names in spec constants.
2022-01-18MSL: Rethink how opaque descriptors are passed to leaf functions.Hans-Kristian Arntzen
We were passing arrays by value which the compiler fails to optimize, causing abyssal performance. To fix this, we need to consider that descriptors can be in constant or const device address spaces. Also, lone descriptors are passed by value, so we explicitly remove address space qualifiers. One failure case is when shader passes a texture/sampler array as an argument. It's all UniformConstant in SPIR-V, but in MSL it might be thread, const device or constant, so that won't work ... Global variable use works fine though, and that should cover 99.9999999% of use cases.
2022-01-18Test aliased names in declared LUTs.Hans-Kristian Arntzen
2022-01-18Handle aliased names in spec constants.Hans-Kristian Arntzen
Need to register resource name.
2022-01-17Merge pull request #1849 from KhronosGroup/fix-1844Hans-Kristian Arntzen
MSL: Handle constant construct of block-like array types.
2022-01-17MSL: Handle constant construct of block-like array types.Hans-Kristian Arntzen
Need this to be context sensitive, since array of block-like struct is template, but struct of block-like array is C-style. Also, test a mix and match, so we have constant array of block-like struct with array inside. :v
2022-01-17Merge pull request #1848 from KhronosGroup/fix-1843Hans-Kristian Arntzen
MSL: Handle signed atomic min/max.
2022-01-17MSL: Handle signed atomic min/max.Hans-Kristian Arntzen
C++ deduces this based on the pointer type, so cast to atomic_uint/int if we have to.
2022-01-17Merge pull request #1847 from KhronosGroup/fix-1775Hans-Kristian Arntzen
Rework how loop iteration counts are validated.
2022-01-17Merge pull request #1846 from KhronosGroup/fix-1760Hans-Kristian Arntzen
Do not forward expressions which carry a huge amount of dependencies.
2022-01-17Rework how loop iteration counts are validated.Hans-Kristian Arntzen
Introduces an idea of a recompilation making forward progress. There are some extreme edge cases where we need more than 3 loops, but only allow this in specific circumstances where we can reason about forward progress being made.
2022-01-17Do not forward expressions which carry a huge amount of dependencies.Hans-Kristian Arntzen
Need to force temporaries eventually, or compilers have a tendency to explode.
2022-01-14Merge pull request #1845 from KhronosGroup/pr-1842-fixHans-Kristian Arntzen
Fixups for PR 1842
2022-01-14Update references for GL_EXT_texture_buffer.Hans-Kristian Arntzen
2022-01-10fix: GL_EXT_texture_buffer is more common than GL_OES_texture_buffermiomioreimu
2022-01-06Merge pull request #1839 from KhronosGroup/spv1.6Hans-Kristian Arntzen
Add sanity test for SPIR-V 1.6 modules.
2022-01-06Merge pull request #1838 from KhronosGroup/fix-1811Hans-Kristian Arntzen
Support LocalSizeId
2022-01-06Add sanity test for SPIR-V 1.6 modules.Hans-Kristian Arntzen
Just verify that we don't blow up on these modules.