DescriptionTwo techniques are introduced implementing RGB->YV12 conversion using fragment shaders. This functionality is added to AcceleratedSurfaceTransformer, and validated by new tests checking accuracy against a reference implementation.
The faster ("MRT") technique needs hardware support for multiple simultaneous render targets, and takes two passes, the second pass reading one-quarter as much data as the first pass. The slower "WithoutMRT" technique requires three passes and reads the full RGB input with each pass.
On two machines I tested (one NVIDIA, one Intel), the fast path was about twice the speed of the dumb path. On an NVIDIA Quadro 6000 using the fast path, at 1280x720 frame size, conversion ran at 2838 fps. Accuracy was within two bits of the software implementation, and usually within one bit.
BUG=161537
TEST=Included unit tests.
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=175446
Patch Set 1 #Patch Set 2 : Patch vs. root #Patch Set 3 : For self review (includes several hacks) #Patch Set 4 : "Self Review Fixes." #Patch Set 5 : More self-review fixes. #Patch Set 6 : Test improvements. #
Total comments: 34
Patch Set 7 : Addressed Yuri's comments. #Patch Set 8 : Whitespace cleanup. #Patch Set 9 : Addressed Al's comments. #Patch Set 10 : Merge with tot. #Patch Set 11 : Fix line endings #Patch Set 12 : More line endings. #Patch Set 13 : "Yet more line endings." #
Messages
Total messages: 10 (0 generated)
|