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
2019-05-09GLSL: Support OpBitcast for buffer references.Hans-Kristian Arntzen
Update glslang/SPIRV-Tools/SPIRV-Headers references.
2019-05-07HLSL: Support OpArrayLength.Hans-Kristian Arntzen
2019-05-02GLSL: Support GL_EXT_nonuniform_qualifier.Hans-Kristian Arntzen
2019-04-26GLSL: Support GL_EXT_scalar_block_layout.2019-04-26Hans-Kristian Arntzen
2019-04-26GLSL: Implement GL_EXT_buffer_reference.Hans-Kristian Arntzen
Buffer objects can contain arbitrary pointers to blocks. We can also implement ConvertPtrToU and ConvertUToPtr. The latter can cast a uint64_t to any type as it pleases, so we will need to generate fake buffer reference blocks to be able to cast the type.
2019-04-08Support fma() in older GLSL targets.Hans-Kristian Arntzen
2019-04-05Detect invalid DoWhileLoop early.Hans-Kristian Arntzen
We had a bug where error conditions in DoWhileLoop emit path would not detect that statements were being emitted due to the masking behavior which happens when force_recompile is true. Fix this. Also, refactor force_recompile into member functions so we can properly break on any situation where this is set, without having to rely on watchpoints in debuggers.
2019-03-27Make ray-tracing files .nocompat.Hans-Kristian Arntzen
2019-03-26Add generated reference shaders againPatrick Mours
2019-03-26Remove reference shaders againPatrick Mours
2019-03-26Fix missing check for purity on ray tracing builtinsPatrick Mours
2019-03-25Add generated reference shadersPatrick Mours
See commit aa1c72bc51adc0e7f4e01ee14a4278c47cad3398
2019-03-25Add ray tracing test shadersPatrick Mours
Slightly modified from https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#_sample_code_2
2019-03-21GLSL/HLSL: Implement NMin/NMax/NClamp.Hans-Kristian Arntzen
Need to emulate these calls for correctness.
2019-03-21GLSL: Deal with array loads from input in tessellation.Hans-Kristian Arntzen
We have an edge case where the array is declared with a concrete size, but in GLSL we must emit an unsized array, which breaks array copies. Deal explicitly with this.
2019-03-21GLSL: Unroll loads from builtin pos/point arrays.Hans-Kristian Arntzen
Odd-ball case for certain geometry shaders coming from HLSL.
2019-03-19GLSL: Support emitting push constant block as a plain UBO.Hans-Kristian Arntzen
2019-02-22MSL: Fix textures which are sampled and compared against.Hans-Kristian Arntzen
depth2d in MSL only returns float, not float4, even for normal sampling. We need to conditionally remap-swizzle back to float4.
2019-02-20Fix case where a struct is loaded which contains a row-major matrix.Hans-Kristian Arntzen
2019-02-13GLSL: Fix block name shenanigans in edge cases.Hans-Kristian Arntzen
When we force recompile, the old var.self name we used as a fallback name might have been disturbed, so we should recover certain names back to their original form in case we are forced to take a recompile to make the naming algorithm more deterministic.
2019-02-06Support LUTs in single-function CFGs on Private storage class.Hans-Kristian Arntzen
Fairly common pattern in unoptimized SPIR-V. Support this case as well.
2019-01-30GLSL/MSL: Implement 8-bit part of VK_KHR_shader_float16_int8.Hans-Kristian Arntzen
Storage was in place already, so mostly just dealing with bitcasts and constants. Simplies some of the bitcasting logic, and this exposed some bugs in the implementation. Refactor to use correct width integers with explicit bitcast opcodes.
2019-01-30Update to latest glslang/SPIRV-Tools.Hans-Kristian Arntzen
Fix various bugs along the way.
2019-01-30Support initializers on StorageClassOutput.fix-838Hans-Kristian Arntzen
2019-01-09Fix input array size in tessellation evaluation shaders.Hans-Kristian Arntzen
2019-01-07Deal with phi copies which happen inside continue blocks.Hans-Kristian Arntzen
2019-01-07Fix case where OpPhi is used to swap values.Hans-Kristian Arntzen
2019-01-04Merge pull request #799 from KhronosGroup/fix-780Hans-Kristian Arntzen
Use correct block-name / other-name aliasing rules.
2019-01-04Use correct block-name / other-name aliasing rules.Hans-Kristian Arntzen
A block name cannot alias with any name in its own scope, and it cannot alias with any other "global" name. To solve this, we need to complicate the name cache updates a little bit where we have a "primary" namespace and "secondary" namespace.
2019-01-04Register implied expression reads in OpLoad/OpAccessChain.Hans-Kristian Arntzen
This is required to avoid relying on complex sub-expression elimination in compilers, and generates cleaner code. The problem case is if a complex expression is used in an access chain, like: Composite comp = buffer[texture(...)]; vec4 a = comp.a + comp.b + comp.c; Before, we did not have common subexpression tracking for OpLoad/OpAccessChain, so we easily ended up with code like: vec4 a = buffer[texture(...)].a + buffer[texture(...)].b + buffer[texture(...)].c; A good compiler will optimize this, but we should not rely on it, and forcing texture(...) to a temporary also looks better. The solution is to add a vector "implied_expression_reads", which works similarly to expression_dependencies. We also need an extra mechanism in to_expression which lets us skip expression read checking and do it later. E.g. for expr -> access chain -> load, we should only trigger a read of expr when using the loaded expression.
2018-11-28Support gl_HelperInvocation on GLSL and MSL.Hans-Kristian Arntzen
There is no obvious builtin for this on HLSL.
2018-11-26Fix unsigned switch case selectors.Hans-Kristian Arntzen
2018-11-22Handle invariant decoration more robustly.Hans-Kristian Arntzen
Avoids certain cases of variance between translation units by forcing every dependent expression of a store to be temporary. Should avoid the major failure cases where invariance matters.
2018-11-15Parser: Handle group decorations.Hans-Kristian Arntzen
2018-11-13GLSL: Support extended arithmetic opcodes.Hans-Kristian Arntzen
- uaddCarry - usubBorrow - umulExtended - imulExtended
2018-11-12Deal with depth_greater/depth_less qualifiers.Hans-Kristian Arntzen
Adds support on HLSL SM 5.0, and fixes bug on GLSL. Makes sure early fragment tests is tested on MSL as well.
2018-11-05Support bitcasts of 16-bit types.Chip Davis
2018-11-02Support constants of 16-bit integral type in GLSL and MSL.Chip Davis
Constants of 8-bit type aren't supported in GLSL, since there's no extension letting you use them.
2018-11-01Add support for 8- and 16-bit types to GLSL and MSL.Chip Davis
In GLSL, 8-bit types require GL_EXT_shader_8bit_storage. 16-bit types can use either GL_AMD_gpu_shader_int16/GL_AMD_gpu_shader_half_float or GL_EXT_shader_16bit_storage.
2018-11-01Deal with OpSpecConstantOp used as array size.Hans-Kristian Arntzen
When trying to validate buffer sizes, we usually need to bail out when using SpecConstantOps, but for some very specific cases where we allow unsized arrays currently, we can safely allow "unknown" sized arrays as well. This is probably the best we can do, when we have even more difficult cases than this, we throw a more sensible error message.
2018-11-01Add test case for local_size_x_id and some complex cases.Hans-Kristian Arntzen
2018-10-27Add Windows support in Travis CI.Hans-Kristian Arntzen
- Add new Windows support - Use CMake/CTest instead of Make + shell scripts - Use --parallel in CTest - Fix CTest on Windows - Cleanups in test_shaders.py - Force specific commit for SPIRV-Headers - Fix Inf/NaN odd-ball case by moving to ASM
2018-09-27Update glslang and SPIRV-Tools.Hans-Kristian Arntzen
A lot of changes in spirv-opt output. Some new invalid SPIR-V was found but most of them were not significant for SPIRV-Cross, so just marked them as invalid.
2018-09-18Add test case for continue out of switch default block.Hans-Kristian Arntzen
2018-09-18Deal with switch cases which break out of a loop.Hans-Kristian Arntzen
Need some pretty hideous ladder variable system, but high level languages do not support breaking out of a loop. break in switch blocks and break in loops alias each other.
2018-09-17Implement atomic increment/decrement in GLSL and HLSL.Hans-Kristian Arntzen
2018-09-11Bitcast loads from builtin compute variables.bitcast-builtin-computeHans-Kristian Arntzen
2018-09-10Support Component decoration in GLSL.Hans-Kristian Arntzen
2018-09-10Add composite array test shaders for GLSL and HLSL as well.Hans-Kristian Arntzen
2018-08-29Add new tests for GLSL 4.50 shaders.Chip Davis