[Bug 106390] Invalid imageAtomicExchange() writes.

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri May 4 05:50:14 UTC 2018


https://bugs.freedesktop.org/show_bug.cgi?id=106390

--- Comment #4 from Alexander <frustumo at gmail.com> ---
(In reply to Jason Ekstrand from comment #3)
> (In reply to Alexander from comment #2)
> > So is the atomicImage* behavior different to imageStore? It's not absolutely
> > clear from GL_ARB_shader_image_load_store specification: "For example, it is
> > legal to access an image whose internal format is RGBA8 with an image unit
> > format of R32UI."
> > 
> > Nvidia and AMD doesn't have a difference between:
> > 
> > layout(r32ui) uniform uimage2D surface;
> > imageAtomicExchange(surface, ..., packUnorm4x8(color))
> > 
> > layout(rgba8) uniform writeonly image2D surface;
> > imageStore(surface, ..., color)
> 
> Ok, yeah, that should work fine and I'm a bit confused as to why it's not. 
> Sorry for the overly quick response. :/  Are you sure the image unit is set
> up with the right format?
> 
> Unfortunately, from the pictures, it's hard to tell what's wrong.  Do you
> expect them to be exactly the same?  I suppose the one with atomics has a
> bit of a blue tint.
> 
> What happens if you bind as R32_UINT and then use imageStore(surface, ...,
> packUnorm4x8(color))?

It's impossible to substitute imageAtomicExchange() with imageStore().
imageStore(uimage2D, ivec2, uvec4) is the only suitable signature
for r32ui format. The result of such operation is weird.

I have some update on this issue. I tried to store a gradient based on
shader invocation: vec4(ivec4(gl_GlobalInvocationID.xy, 0, 0) % 256) / 255.0f
And there is no difference between imageAtomicExchange() and imageStore().

It looks like imageAtomicExchange() somehow changes another texture sampling
behavior.

Please check new attachment.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20180504/6afbe4e2/attachment.html>


More information about the intel-3d-bugs mailing list