5493b3030e
- 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. |
||
---|---|---|
.. | ||
aliased-struct-divergent-member-name.asm.comp | ||
arithmetic-conversion-signs.asm.comp | ||
atomic-load-store.asm.comp | ||
atomic-min-max-sign.asm.comp | ||
atomic-result-temporary.asm.comp | ||
bitcast-fp16-fp32.asm.comp | ||
bitfield-signed-operations.asm.comp | ||
bitscan.asm.comp | ||
block-like-array-type-construct-2.asm.comp | ||
block-like-array-type-construct.asm.comp | ||
buffer-device-address-ptr-casting.msl24.asm.comp | ||
composite-construct-buffer-struct.asm.comp | ||
constant-composite-undef.asm.comp | ||
constant-lut-name-aliasing.asm.comp | ||
copy-logical-2.spv14.asm.comp | ||
copy-logical.spv14.asm.comp | ||
device-array-load-temporary.asm.comp | ||
device-array-load-temporary.force-native-array.asm.comp | ||
device-constant-array-load-store.asm.comp | ||
device-constant-array-load-store.force-native-array.asm.comp | ||
eliminate-globals-not-in-entry-point.noeliminate.spv14.asm.comp | ||
glsl-signed-operations.asm.comp | ||
glsl.std450.frexp-modf-struct.asm.comp | ||
local-size-id-override.asm.comp | ||
local-size-id.asm.comp | ||
modf-storage-class.asm.comp | ||
opptrdiff-basic.spv14.asm.comp | ||
opptrdiff-opptraccesschain-elem-offset.spv14.asm.comp | ||
opptrequal-basic.spv14.asm.comp | ||
opptrequal-row-maj-mtx-bypass-transpose.spv14.asm.comp | ||
opptrnotequal-basic.spv14.asm.comp | ||
spec-constant-name-aliasing.asm.comp | ||
storage-buffer-basic.invalid.asm.comp | ||
storage-buffer-pointer-argument.asm.comp | ||
variable-pointers.asm.comp |