Граф коммитов

112 Коммитов

Автор SHA1 Сообщение Дата
Hans-Kristian Arntzen 7c58f15928 Run format_all.sh. 2017-09-19 16:09:19 +02:00
Hans-Kristian Arntzen 7064c54820 Various fixes to texture/image query in GLSL. 2017-09-19 16:08:25 +02:00
Hans-Kristian Arntzen 6599a41aad Add option to disable use of 420pack extension. 2017-09-08 09:56:06 +02:00
Hans-Kristian Arntzen 713bd7c2b5 Run format_all.sh. 2017-08-28 09:01:03 +02:00
Hans-Kristian Arntzen 3cbdbec712 Begin implementing ByteAddressBuffer flattening for HLSL. 2017-08-15 09:15:23 +02:00
Hans-Kristian Arntzen bdfa97a1cf Unify vertex clip-coord fixups.
The different options were scattered around in different backends and
didn't really work right with CLI at all.
2017-08-03 13:02:59 +02:00
Hans-Kristian Arntzen 2abdc135c3 Declare undefined values up front.
They might potentially be used as part of OpStore in the SPIRV-Tools
inliner in some cases.

Implement these as declared variables but without any initializer.
2017-08-02 10:33:03 +02:00
Hans-Kristian Arntzen c8d60914c4 Add support for SampleId/SampleMask/SamplePosition builtins. 2017-07-24 10:07:31 +02:00
Hans-Kristian Arntzen 978901f9e4 Avoid ugly workaround for separate shadow samplers in GLSL/HLSL. 2017-06-17 10:54:59 +02:00
Bill Hollings ba245697f1 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2017-06-01 10:20:00 -04:00
Hans-Kristian Arntzen 470ae7a7f6 Add multidimensional array flattening test. 2017-05-31 10:00:52 +02:00
Hans-Kristian Arntzen f0044b91a3 Add support for flattening multidimensional arrays. 2017-05-31 09:59:00 +02:00
Bill Hollings b41e1482c8 Support emitting SPIR-V type declarations tuned for specified SPIR-V objects.
CompilerGLSL type_to_glsl() and image_type_glsl() functions support optional object ID.
Add SPIRType::Image::access member to support SPIR-V OpTypeImage access qualifier.
Remove SPIRType::Image::is_read and ::is_written members.
Use DecorationNonReadable and DecorationNonWritable to mark read/write access for image variables.
CompilerMSL emit access qualifiers per image variable, instead of per image type.
CompilerGLSL and CompilerHLSL behaviour is unchanged.
2017-05-29 20:45:05 -04:00
Hans-Kristian Arntzen 36650c890c Add separate shader object support.
Allow redeclaring gl_PerVertex for stage compatibility.
2017-05-22 15:53:21 +02:00
Hans-Kristian Arntzen f081fe1125 Fix separate sampler images in MSL. 2017-05-07 12:36:14 +02:00
Hans-Kristian Arntzen 851acf3712 Avoid boolean mix in HLSL.
Update glslang travis checkout as boolean mix support was broken on that commit.
2017-05-04 10:28:30 +02:00
Hans-Kristian Arntzen 9bad477f16 Add vector-less IR construction to subclasses as well. 2017-04-01 16:08:19 +02:00
Hans-Kristian Arntzen f4749df09a Merge pull request #151 from Kode/fix
Transform more functions for HLSL
2017-03-24 16:13:34 +01:00
Robert Konrad f3a82778f9 Fix OpLogicalNot in HLSL 2017-03-24 15:00:48 +01:00
Robert Konrad a7e2a69a6f Add bit casting to HLSL 2017-03-24 14:13:59 +01:00
Hans-Kristian Arntzen 840a72d47a Workaround empty struct declaration and empty IO variables. 2017-03-24 10:03:11 +01:00
Robert Konrad ec39647d92 Check for legal lod id
And avoid passing superfluous has_lod parameter.
2017-03-24 09:26:02 +01:00
Robert Konrad 9760f1544c Throw when an lod value is used but not supported
Plus requested changes.
2017-03-23 14:43:54 +01:00
Robert Konrad edfc297179 Put check for lod legality in its own function
Also add requested code style changes.
2017-03-23 13:25:24 +01:00
Robert Konrad 3f74503aca Prefer plain texture2D in legacy es vertex shaders
WebGL supports lod texture funcs only in fragment
shaders but SPIR-V supports only lod texture funcs
in vertex shaders. This reverts calls which were
forced (infered from using a 0 constant) to use
an lod to plain calls in vertex shaders when
using legacy es.
2017-03-23 10:11:45 +01:00
Hans-Kristian Arntzen b8bda45802 Add test case for interpolation qualifiers in HLSL. 2017-03-21 13:48:50 +01:00
Hans-Kristian Arntzen 439fa9f4a2 Handle I/O blocks separately from regular inputs and outputs. 2017-03-21 13:48:50 +01:00
Hans-Kristian Arntzen 75391f9a68 Handle vector variants of OpLogicalAnd/Or/Not. 2017-03-20 22:45:40 +01:00
Bill Hollings dc69427402 Updates to MSL functionality to support PR review feedback. 2017-03-11 12:17:22 -05:00
Bill Hollings 826de0e777 Merge with upstream and resolve conflicts. 2017-03-06 12:15:42 -05:00
Hans-Kristian Arntzen c5de1cfa90 Add support for flattening I/O blocks.
Fix issue where layout() qualifiers are emitted for members in legacy
targets.
2017-03-06 14:01:51 +01:00
Bill Hollings b332bae3c3 spirv_msl unpack packed MSL uniform struct members.
spirv_glsl add member_is_packed_type() and unpack_expression_type() functions.
2017-03-01 13:07:40 -05:00
Bill Hollings 484931d8b2 spirv_msl auto-alignment of members of MSL uniform structs.
spirv_msl optionally add padding and packing to allow MSL
struct members to align with SPIR-V struct alignments.
spirv_cross add convenience methods for testing Decorations.
spirv_glsl replace member_decl() function with new emit_stuct_member().
Allow struct member types to be marked as packed via DecorationCPacked decoration.
2017-02-28 21:44:36 -05:00
Hans-Kristian Arntzen bcf2303ba0 Do not emit storage qualifiers for local variables.
Metal backend uses local variables to implement global variables.
Do not emit storage qualifiers for any variable which is declared inside
a function.
2017-02-24 11:15:34 +01:00
Hans-Kristian Arntzen 036b9b73f5 Emit storage qualifier in the correct place.
Need to emit qualifiers in a specific order for legacy GLSL.

<interpolation> <storage> <precision> <type>.
2017-02-24 09:56:17 +01:00
Hans-Kristian Arntzen fc80cd8cbf Add support for loading flattened structs. 2017-02-23 19:31:56 +01:00
Hans-Kristian Arntzen 97350d32fd Fix cases for flattened struct write.
Handle writing the entire struct as well as writing the elements
individually.
2017-02-23 19:05:11 +01:00
Hans-Kristian Arntzen 3c58bbbcbe Flatten varying structs outputs in legacy targets. 2017-02-22 20:17:58 +01:00
Hans-Kristian Arntzen 18c37bcdab Update license headers for 2017. 2017-01-28 09:00:40 +01:00
Robert Konrad c53646a670 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross into hlsl 2017-01-25 17:03:57 +01:00
Arseny Kapoulkine ed04c95b08 Implement flattening of row major matrix indexing
To extract a column from row-major matrix, we need to do a strided load one
component at a time. In this case flattened_access_chain_offset still returns
the offset to the first element, but the stride is equal to matrix stride
instead of vector stride.

For this to work, we need to pass matrix stride (and transpose flag) through,
similar to how matrix flattening works.

Additionally slightly clean up recursive flattened_access_chain structure -
specifically, instead of deciding mid-traversal that we need matrix stride
information, we can just pass the matrix stride through - for access chains
that end in matrix/vector this gets us what we need, and for access chains
that end in structs the flattened_access_chain_struct code will recompute
correct stride/transposition data to pass through further.
2017-01-24 07:42:19 -08:00
Robert Konrad c3268c9410 Do not output layouts for uniforms in HLSL 2017-01-24 09:23:22 +01:00
Robert Konrad 99469f0690 Convert uniform buffer blocks to cbuffers 2017-01-24 09:17:43 +01:00
Robert Konrad bb763f3984 Fix merge 2017-01-23 14:52:02 +01:00
Robert Konrad 40e5d1e7f7 Format code 2017-01-23 14:49:32 +01:00
Robert Konrad 429b8cb25f Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross into hlsl
# Conflicts:
#	spirv_glsl.hpp
2017-01-23 14:44:41 +01:00
Robert Konrad ea24ee8145 Do not splat type contructor arguments in HLSL 2017-01-23 14:39:04 +01:00
Hans-Kristian Arntzen d87249a2eb Remove hack for accessing matrix decorations in flattened structs. 2017-01-22 09:25:01 +01:00
Hans-Kristian Arntzen 87f3c57945 Formatting. 2017-01-21 12:47:26 +01:00
Hans-Kristian Arntzen 9540979c55 Support int and uint as flattened UBO types. 2017-01-21 12:29:20 +01:00