Hash :
be7f44fb
Author :
Date :
2018-05-21T14:35:32
Vulkan: Use push constant for masked clear color Storing the color in an uniform buffer, and updating it by vkCmdUpdateBuffer can hit a driver bug. Using vkCmdPushConstants instead can workaround this bug. Besides, push constant is expected to outperform memory-backed resource update according to the vkspec (section 13.2.6). Bug: angleproject:2547 Change-Id: I319cd8e07e0a1d0cb56005b78a46466d9fca436e Reviewed-on: https://chromium-review.googlesource.com/1067247 Commit-Queue: Jie A Chen <jie.a.chen@intel.com> Reviewed-by: Luc Ferron <lucferron@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
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_vk_internal_shaders.py using data from shaders/src/*
//
// Copyright 2018 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.
//
// vk_internal_shaders_autogen.cpp:
// Pre-generated shader library for the ANGLE Vulkan back-end.
#include "libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h"
#include "common/debug.h"
namespace rx
{
namespace vk
{
namespace priv
{
namespace
{
#include "libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/PushConstantColor.frag.inc"
constexpr ShaderBlob kShaderBlobs[] = {{kFullScreenQuad_vert, sizeof(kFullScreenQuad_vert)},
{kPushConstantColor_frag, sizeof(kPushConstantColor_frag)}};
} // anonymous namespace
const ShaderBlob &GetInternalShaderBlob(InternalShaderID shaderID)
{
ASSERT(static_cast<size_t>(shaderID) < static_cast<size_t>(InternalShaderID::EnumCount));
return kShaderBlobs[static_cast<size_t>(shaderID)];
}
} // namespace priv
} // namespace vk
} // namespace rx