Fix #120919: EEVEE-Next: Intel UHD support for probe remapping. #121105
|
@ -34,6 +34,7 @@
|
|||
#define CULLING_TILE_GROUP_SIZE 256
|
||||
|
||||
/* Reflection Probes. */
|
||||
/* When changed update parallel sum loop in `eevee_reflection_probe_remap_comp.glsl`. */
|
||||
#define SPHERE_PROBE_REMAP_GROUP_SIZE 32
|
||||
#define SPHERE_PROBE_GROUP_SIZE 16
|
||||
#define SPHERE_PROBE_SELECT_GROUP_SIZE 64
|
||||
|
|
|
@ -125,12 +125,13 @@ void main()
|
|||
const uint group_size = gl_WorkGroupSize.x * gl_WorkGroupSize.y;
|
||||
|
||||
/* Parallel sum. Result is stored inside local_radiance[0]. */
|
||||
local_radiance[local_index] = radiance.xyzz * sample_weight;
|
||||
Jeroen-Bakker marked this conversation as resolved
|
||||
for (uint stride = group_size / 2; stride > 0; stride /= 2) {
|
||||
uint stride = group_size / 2;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
barrier();
|
||||
Jeroen-Bakker marked this conversation as resolved
Clément Foucault
commented
Can you try this instead? This construct works fine in other shaders.
Can you try this instead? This construct works fine in other shaders.
```
uint stride = group_size / 2;
for (int i = 0; i < 11; i++) {
barrier();
if (local_index < stride) {
local_radiance[local_index] += local_radiance[local_index + stride];
}
stride /= 2;
}
|
||||
if (local_index < stride) {
|
||||
local_radiance[local_index] += local_radiance[local_index + stride];
|
||||
}
|
||||
stride /= 2;
|
||||
}
|
||||
|
||||
barrier();
|
||||
|
|
Loading…
Reference in New Issue
You missed that line. The result summed inside the LDS is then undefined.