Am 20.03.2013 19:09, schrieb Christoph Bumiller: > On 20.03.2013 18:30, Roland Scheidegger wrote: >> Am 20.03.2013 17:46, schrieb Christoph Bumiller: >>> On 20.03.2013 17:05, Roland Scheidegger wrote: >>>> >>>> Not sure I fully understand this, but I'm thinking "whenever in doubt, >>>> use something close to what dx10 does" since that's likely going to work >>>> reasonable with different hw. Maybe declaring those special values >>>> differently (not just as output reg) would help? >>> What DX10 does is making indirect access of varyings illegal. That's not >>> possible with OpenGL ... >> Hmm I thought dcl_indexRange would be used for indirect access of varyings? > > Interesting ... when last I tried that back when working on d3d1x, the > compiler didn't like it, and I remember something about indexRange > existing only for debugging (and I remember finding that strange). > > Also, d3d11 doesn't have the annoying limit that GLSL has so there is no > need for it to pack varyings. > When I use floats[3] + SV_POSITION, I get "vs_5_0 output limit (32) > exceeded, shader uses 33 outputs", but float4[28] works just fine. > > For indirect access I still get: > error X3500: array reference cannot be used as an l-value; not natively > addressable Hmm that's odd. On some quick look I couldn't find many examples using it - and those I found it was used in hull shaders. I can't see anything saying it shouldn't work at all though (it does have some restrictions but they look reasonable to me).
> > for > > struct IA2VS > { > float4 position : POSITION; > float4 color : COLOR; > }; > > struct VS2PS > { > float4 position : SV_POSITION; > float4 color[2] : WHATEVER; > }; > > VS2PS vs(IA2VS input) > { > VS2PS result; > int i = int(input.position.x); > result.position = input.position; > result.color[i] = input.color; > return result; > } > > float4 ps(VS2PS input) : SV_TARGET > { > return input.color[0]; > } _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev