Bug 94142 - Blits from GL_TEXTURE_2D_MULTISAMPLE GL_INT or GL_UINT surfaces are not handled correctly
Summary: Blits from GL_TEXTURE_2D_MULTISAMPLE GL_INT or GL_UINT surfaces are not handl...
Status: NEW
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Ian Romanick
QA Contact: Intel 3D Bugs Mailing List
Depends on:
Reported: 2016-02-13 22:52 UTC by Ian Romanick
Modified: 2016-02-13 22:52 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

Assertion that also shows the problem. (2.83 KB, text/plain)
2016-02-13 22:52 UTC, Ian Romanick

Note You need to log in before you can comment on or make changes to this bug.
Description Ian Romanick 2016-02-13 22:52:41 UTC
Created attachment 121740 [details]
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.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.