Summary: | [softpipe] piglit drawbuffer-modes regression | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vinson Lee <vlee> |
Component: | Drivers/Gallium/softpipe | Assignee: | mesa-dev |
Status: | RESOLVED MOVED | QA Contact: | mesa-dev |
Severity: | normal | ||
Priority: | medium | CC: | airlied |
Version: | 11.1 | Keywords: | bisected, regression |
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Vinson Lee
2015-11-14 22:40:16 UTC
mesa: 1e8435ce0cce671024ebf9c5465ea8bdcb563b69 (master 11.3.0-devel) This regression is still present. The reason this has stopped working is because the drawable is not refreshed with the data written to the front buffer before reading its pixels. Since https://cgit.freedesktop.org/mesa/mesa/commit/?id=2b676570960277d47477822ffeccc672613f9142, the drawable act as the source for reading the front buffer data. Since this test writes directly to the front buffer, all operations have to be flushed and reflected by the drawable before attempting to read it. On a explicit flush, the state tracker take care of refreshing the drawable with the front buffer data after flushing (see st_glFlush). But in the drawbuffer-modes test, the flush is done implicitly by calling glReadPixels and is handled by the soft/llvm pipes themselves (see *pipe_transfer_map). The drawable does not get refreshed in this case, therefore when the test reads the front buffer data, it reads garbage. It is tricky to refresh the drawable after flushing from the pipes because at that level, we don't know the nature of the resource being mapped for reading (front buffer, back buffer...). Unless I miss something? -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/215. |
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.