Blits from GL_TEXTURE_2D_MULTISAMPLE GL_INT or GL_UINT surfaces are not handled correctly
Submitted by Ian Romanick
Assigned to Ian Romanick
Description
Created attachment 121740 Assertion that also shows the problem.
For reference, use 'git blame src/mesa/drivers/common/meta_blit.c 9e30d66b'. Assume the blit is an MSAA-MSAA blit from a GL_TEXTURE_2D_MULTISAMPLE surface with base type GL_INT.
Line 294 sets dst_is_msaa true.
Line 313 sets shader_index to BLIT_MSAA_SHADER_2D_MULTISAMPLE_COPY.
Line 339 increments shader_index by 5, and it is now BLIT_1X_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_RESOLVE.
Similar problems exist for GL_TEXTURE_2D_MULTISAMPLE_ARRAY blits. You really only notice this problem is a blit of one kind is followed by a blit of a kind that conflicts.
We should have piglit tests for this.
I noticed this because, while I was making other changes, I added an assertion like the one in the attachment. Surely dst_is_msaa must be false when doing a resolve blit. Alas.
Attachment 121740, "Assertion that also shows the problem.":
dst-not-msaa-for-resolve.patch
Version: git