texture/sampler array support?

  • kingeric1992
  • Topic Author
More
8 years 6 months ago - 8 years 6 months ago #1 by kingeric1992 texture/sampler array support? was created by kingeric1992
just wondering... and proper syntax?
Last edit: 8 years 6 months ago by kingeric1992.

Please Log in or Create an account to join the conversation.

  • crosire
More
8 years 6 months ago #2 by crosire Replied by crosire on topic texture/sampler array support?
As in
sampler mySamplers[50];
or in
samplerArray mySamplers;
?
The following user(s) said Thank You: kingeric1992

Please Log in or Create an account to join the conversation.

  • kingeric1992
  • Topic Author
More
8 years 6 months ago - 8 years 6 months ago #3 by kingeric1992 Replied by kingeric1992 on topic texture/sampler array support?
I'm thinking the first one. but I suppose that wouldn't matters at all without branching by the index.

anyway, how about array = array ?
I can construct a function that returns a array of float2 like this
void test (out float2 a[8], float2 b[8])
{     
    a[0] = b[0]; 
    a[1] = b[1];
    ...
    a[7] = b[7];
 };
but unable to retrieve it later with
   float2 r[8] = {float2(0,0), float2(1,1),  ....float2(7,7)};
   r = test(r);
and report: error X3013: no matching function overload for 'test'
Last edit: 8 years 6 months ago by kingeric1992.

Please Log in or Create an account to join the conversation.

  • crosire
More
8 years 6 months ago #4 by crosire Replied by crosire on topic texture/sampler array support?

kingeric1992 wrote: but unable to retrieve it later with

   float2 r[8] = {float2(0,0), float2(1,1),  ....float2(7,7)};
   r = test(r);
and report: error X3013: no matching function overload for 'test'

Should be:
float2 a[8] = { ... };
float2 b[8] = { ... };
test(a, b);
Assigning arrays to each other is tricky, because the values inside could be stored in different registers, meaning a simple copy from one to another does not work. That's why you usually need a loop or explicit assignment of each value inside the array. To properly reflect that in the high level code, array assignment is not supported by the language directly, as it would introduce a lot more boilerplate code behind the scenes that one would not guess from looking just at the high level code.

Samplers arrays are a similar story. They would only be possible if the array index is known at compile time:
sampler samplers[5];

tex2D(samplers[2], ...);
The following would not work due to the same register restrictions:
sampler samplers[5];

int i = ...;
tex2D(samplers[i], ...);
That however makes the whole sampler array thing a little useless, which is why I decided to simply not have the language support them at all back then.

Please Log in or Create an account to join the conversation.

  • kingeric1992
  • Topic Author
More
8 years 6 months ago #5 by kingeric1992 Replied by kingeric1992 on topic texture/sampler array support?
Thanks, that works.
sadly the result is not as expected...as expected.
more debugging then. (≧∀≦)ゞ

Please Log in or Create an account to join the conversation.

We use cookies
We use cookies on our website. Some of them are essential for the operation of the forum. You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.