https://bugs.freedesktop.org/show_bug.cgi?id=98512
Bug ID: 98512 Summary: radeon r600 vdpau: Invalid command stream: texture bo too small Product: Mesa Version: git Hardware: x86-64 (AMD64) OS: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/r600 Assignee: dri-devel@lists.freedesktop.org Reporter: james.campbell@yahoo.com QA Contact: dri-devel@lists.freedesktop.org
Mesa Git Master Arch Linux AMD A8-6600K APU
When playing an h264 video using mpv with vdpau hardware decoding over opengl, the video is corrupted and the following error appears in dmesg:
[ 8936.496231] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:854 texture bo too small (layer size 225280, offset 1126400, max layer 2, depth 1, bo size 1351680) (640 176) [ 8936.496257] [drm:radeon_cs_ioctl [radeon]] *ERROR* Invalid command stream !
If I downgrade mesa to 12.0.3, playback works ok.
Other mpv users have reported the same issue: https://github.com/mpv-player/mpv/issues/3714
https://bugs.freedesktop.org/show_bug.cgi?id=98512
--- Comment #1 from Christian König deathsimple@vodafone.de --- Clearly a bug in the part of the stack which uses the 3D engine for scaling and color space conversion.
Can you try to bisect? If you don't know how feel free to contact me by mail on christian.koenig@amd.com.
https://bugs.freedesktop.org/show_bug.cgi?id=98512
--- Comment #2 from jcamp james.campbell@yahoo.com ---
I'm a newbie at this, so I posted to the mpv bug tracker if anyone there can bisect (https://github.com/mpv-player/mpv/issues/3714).
If no one volunteers soon, then I'll give it a try.
https://bugs.freedesktop.org/show_bug.cgi?id=98512
--- Comment #3 from jcamp james.campbell@yahoo.com --- I followed the Arch Linux wiki on how to git bisect, and here's the result:
e5cc84dd43be066c1dd418e32f5ad258e31a150a is the first bad commit commit e5cc84dd43be066c1dd418e32f5ad258e31a150a Author: Brian Paul brianp@vmware.com Date: Fri Sep 30 16:41:46 2016 -0600
st/mesa: optimize pipe_sampler_view validation
Before, st_get_texture_sampler_view_from_stobj() did a lot of work to check if the texture parameters matched the sampler view (format, swizzle, min/max lod, first/last layer, etc). We did this every time we validated the texture state.
Now, we use a ctx->Driver.TexParameter() callback and a couple other checks to proactively release texture views when we know that view-related parameters have changed. Then, the validation step is simplified: - Search the texture's list of sampler views (just match the context). - If found, we're done. - Else, create a new sampler view.
There will never be old, out-of-date sampler views attached to texture objects that we have to test.
Most apps create textures and set the texture parameters once. This make sampler view validation much cheaper for that case.
Note that the old texture/sampler comparison code has been converted into a set of assertions to verify that the sampler view is in fact consistent with the texture parameters. This should help to spot any potential regressions.
Reviewed-by: Edward O'Callaghan funfunctor@folklore1984.net Reviewed-by: Nicolai Hähnle nicolai.haehnle@amd.com Reviewed-by: Marek Olšák marek.olsak@amd.com
:040000 040000 33fe9075f262c8bed745dd732cf2047238698d56 194fe6083d5e3155de216a0990d7babb5c49ee8b M src
https://bugs.freedesktop.org/show_bug.cgi?id=98512
Christian König deathsimple@vodafone.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|dri-devel@lists.freedesktop |mesa-dev@lists.freedesktop. |.org |org CC| |brianp@vmware.com, | |maraeo@gmail.com, | |nhaehnle@gmail.com QA Contact|dri-devel@lists.freedesktop |mesa-dev@lists.freedesktop. |.org |org Component|Drivers/Gallium/r600 |Mesa core
dri-devel@lists.freedesktop.org