Optimize clearing of depth and stencil images
Extend Blitter::fastClear(), which is based on memset() instead of using
Reactor routines, to also handle D32_SFLOAT and S8_UINT formats.
Benchmark results:
Run on (48 X 2594 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x24)
L1 Instruction 32 KiB (x24)
L2 Unified 256 KiB (x24)
L3 Unified 30720 KiB (x2)
--------------------------------------------------------------------------
Benchmark Time CPU Iterations
--------------------------------------------------------------------------
(LLVM, before)
ClearImage/VK_FORMAT_D32_SFLOAT 3.74 ms 0.016 ms 1000
(LLVM, after)
ClearImage/VK_FORMAT_D32_SFLOAT 1.08 ms 0.044 ms 10000
(Subzero, before)
ClearImage/VK_FORMAT_D32_SFLOAT 4.51 ms 0.063 ms 1000
(Subzero, after)
ClearImage/VK_FORMAT_D32_SFLOAT 0.963 ms 0.040 ms 7467
This change re-implements https://swiftshader-review.googlesource.com/c/SwiftShader/+/45888
which was reading 'clearValue' out of bounds when accessing color[1]
when it's only a single depth or stencil value.
Bug: b/159455503
Bug: chromium:1097740
Change-Id: Id3e74b4fa28ee0422540a8480814f8c9988f402a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/45949
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by:
Nicolas Capens <nicolascapens@google.com>
Reviewed-by:
Antonio Maiorano <amaiorano@google.com>
Showing
Please
register
or
sign in
to comment