2015-09-20, 08:05
@VirtualRain:
Summary:
a) VAAPI Rendering (before this work): Decode with VAAPI -> BT601, BT701 color computationg and after that Full RGB transformation without any influence by us, massive banding, colors broken -> Full GPU copy of the decoded surfaces for rendering
b) VAAPI Rendering (after this work): Decode with VAAPI -> Directly untouched zero-copy of the NV12 data (EGL image), no color fuckup, colors untouched -> Shader postprocessing to do BT601, BT701 color matrix with optional dithering before output
c) Disable VAAPI Rendering: Decode with VAAPI -> CPU copy with optimized, but as massive CPU intensive task back to system memory, colors untouched -> Software Rendering path from here
Btw. all of this I tried to explain in the very first post.
@noggin:
You are right, that the VAAPI postprocessing methods (VAAPI-BOB, VAAPI-MCDI, VAAPI-MADI) were only possible with the Prefer VAAPI Render enabled. The Render was even automatically switched on, if you choose those methods while playing a video. Also "Use VAAPI Rendering off" is only possible for max 1920x1080, it is disabled for everything with larger.
Copy path GLX (method a) vs. SSE4 (method c) with a 1920x1080@24p movie.
Copy time (method c) for 3840x2160@p30 content (reason why it was disabled afterwards for 4k content), here I tested 8K vs 4K L1 fixed cache buffer.
Hardware: core i5 3400 mhz, 32 gb memory.
Summary:
a) VAAPI Rendering (before this work): Decode with VAAPI -> BT601, BT701 color computationg and after that Full RGB transformation without any influence by us, massive banding, colors broken -> Full GPU copy of the decoded surfaces for rendering
b) VAAPI Rendering (after this work): Decode with VAAPI -> Directly untouched zero-copy of the NV12 data (EGL image), no color fuckup, colors untouched -> Shader postprocessing to do BT601, BT701 color matrix with optional dithering before output
c) Disable VAAPI Rendering: Decode with VAAPI -> CPU copy with optimized, but as massive CPU intensive task back to system memory, colors untouched -> Software Rendering path from here
Btw. all of this I tried to explain in the very first post.
@noggin:
You are right, that the VAAPI postprocessing methods (VAAPI-BOB, VAAPI-MCDI, VAAPI-MADI) were only possible with the Prefer VAAPI Render enabled. The Render was even automatically switched on, if you choose those methods while playing a video. Also "Use VAAPI Rendering off" is only possible for max 1920x1080, it is disabled for everything with larger.
Copy path GLX (method a) vs. SSE4 (method c) with a 1920x1080@24p movie.
Copy time (method c) for 3840x2160@p30 content (reason why it was disabled afterwards for 4k content), here I tested 8K vs 4K L1 fixed cache buffer.
Hardware: core i5 3400 mhz, 32 gb memory.