slang broke my shader again (basic vertex), so now I need to figure out whose fault it is...
-
slang broke my shader again (basic vertex), so now I need to figure out whose fault it is...
before
```
%233 = OpAccessChain %_ptr_Push__float4x4natural %entryPointParams %int_0 %int_0
%320 = OpLoad %_float4x4natural %233
```after
```
%235 = OpAccessChain %_ptr_Push_VConsts_natural %entryPointParams %int_0
%250 = OpLoad %VConsts_natural %235
%252 = OpCopyLogical %VConsts_natural_logical %250
%322 = OpCompositeExtract %_float4x4_logicalnatural %252 0
````%322` causes spirv_to_nir to assert
-
slang broke my shader again (basic vertex), so now I need to figure out whose fault it is...
before
```
%233 = OpAccessChain %_ptr_Push__float4x4natural %entryPointParams %int_0 %int_0
%320 = OpLoad %_float4x4natural %233
```after
```
%235 = OpAccessChain %_ptr_Push_VConsts_natural %entryPointParams %int_0
%250 = OpLoad %VConsts_natural %235
%252 = OpCopyLogical %VConsts_natural_logical %250
%322 = OpCompositeExtract %_float4x4_logicalnatural %252 0
````%322` causes spirv_to_nir to assert
who wants to write a new shading language with me
-
who wants to write a new shading language with me
@dotstdy Let's name it "slang"! It's very clever, you see, s-hader lang-uage! Nobody thought of this before!
-
slang broke my shader again (basic vertex), so now I need to figure out whose fault it is...
before
```
%233 = OpAccessChain %_ptr_Push__float4x4natural %entryPointParams %int_0 %int_0
%320 = OpLoad %_float4x4natural %233
```after
```
%235 = OpAccessChain %_ptr_Push_VConsts_natural %entryPointParams %int_0
%250 = OpLoad %VConsts_natural %235
%252 = OpCopyLogical %VConsts_natural_logical %250
%322 = OpCompositeExtract %_float4x4_logicalnatural %252 0
````%322` causes spirv_to_nir to assert
Perhaps mesa! slang is generating
```
%250 = OpLoad %VSConstants_natural %235
%252 = OpCopyLogical %VSConstants_natural_logical %250
```Then it tries to access through that version
`%322 = OpCompositeExtract %_MatrixStorage_float4x4_logicalnatural %252 0`
Which matches the struct definition
`%VSConstants_natural_logical = OpTypeStruct %_MatrixStorage_float4x4_logicalnatural ...`
And mesa borks on %322:
ssa: _MatrixStorage_float4x4natural, bare: _MatrixStorage_float4x4_logicalnatural
-
Perhaps mesa! slang is generating
```
%250 = OpLoad %VSConstants_natural %235
%252 = OpCopyLogical %VSConstants_natural_logical %250
```Then it tries to access through that version
`%322 = OpCompositeExtract %_MatrixStorage_float4x4_logicalnatural %252 0`
Which matches the struct definition
`%VSConstants_natural_logical = OpTypeStruct %_MatrixStorage_float4x4_logicalnatural ...`
And mesa borks on %322:
ssa: _MatrixStorage_float4x4natural, bare: _MatrixStorage_float4x4_logicalnatural
So perhaps the mesa handling of `OpCopyLogical` is borked? Wait, shouldn't this be dealing with the new types of the fields too...
-
undefined Oblomov shared this topic
-
who wants to write a new shading language with me
i know as soon as i start writing a parser i am lost, so as long as i don't take that step we're all good.
-
i know as soon as i start writing a parser i am lost, so as long as i don't take that step we're all good.
@dotstdy the first parseless compiler.