Hash :
fcf3a1c0
Author :
Date :
2024-07-02T16:33:28
GL: Allow shader compilation with cached translated source Write the translated shader source when serializing shaders. This does not increase the size of the shader cache because Vulkan only uses the compiledBinary field. Spawn a ShaderTranslateTask for loading shaders so the GL backend can compile the shader on the native driver. Bug: angleproject:350779978 Change-Id: I14413a7ca2a0d99653a1082f2c8b4a94cf58626a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5672740 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
//
// Copyright 2016 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// ShaderNULL.cpp:
// Implements the class methods for ShaderNULL.
//
#include "libANGLE/renderer/null/ShaderNULL.h"
#include "common/debug.h"
#include "libANGLE/Context.h"
#include "libANGLE/renderer/ContextImpl.h"
namespace rx
{
ShaderNULL::ShaderNULL(const gl::ShaderState &data) : ShaderImpl(data) {}
ShaderNULL::~ShaderNULL() {}
std::shared_ptr<ShaderTranslateTask> ShaderNULL::compile(const gl::Context *context,
ShCompileOptions *options)
{
const gl::Extensions &extensions = context->getImplementation()->getExtensions();
if (extensions.shaderPixelLocalStorageANGLE)
{
options->pls = context->getImplementation()->getNativePixelLocalStorageOptions();
}
return std::shared_ptr<ShaderTranslateTask>(new ShaderTranslateTask);
}
std::shared_ptr<ShaderTranslateTask> ShaderNULL::load(const gl::Context *context,
gl::BinaryInputStream *stream)
{
return std::shared_ptr<ShaderTranslateTask>(new ShaderTranslateTask);
}
std::string ShaderNULL::getDebugInfo() const
{
return "";
}
} // namespace rx