Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 628feb70 authored by Nathaniel Nifong's avatar Nathaniel Nifong
Browse files

Skip fp16 buffers for GPUs that don't support fp16 textures.

Bug: b/192518252

Test: I have no way to test this, on adt3 device, but it boots on R4 device.

Change-Id: I6340aab0aaeb6c2eea44f29735d90db20c25c6d1
parent 61cfde71
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -313,7 +313,13 @@ void Cache::primeShaderCache(SkiaRenderEngine* renderengine) {

        // The majority of shaders are related to sampling images.
        // These need to be generated with various source textures
        for (auto texture : {srcTexture, externalTexture, f16ExternalTexture}) {
        // The F16 texture may not be usable on all devices, so check first that it was created with
        // the requested usage bit.
        auto textures = {srcTexture, externalTexture};
        auto texturesWithF16 = {srcTexture, externalTexture, f16ExternalTexture};
        bool canUsef16 = f16ExternalBuffer->getUsage() & GRALLOC_USAGE_HW_TEXTURE;

        for (auto texture : canUsef16 ? texturesWithF16 : textures) {
            drawImageLayers(renderengine, display, dstTexture, texture);
            // Draw layers for b/185569240.
            drawClippedLayers(renderengine, display, dstTexture, texture);