Commit a2ef8144 by Alexey Knyazev Committed by Commit Bot

Vulkan: fix undefined right shift in GetMask

Bug: chromium:1137170 Change-Id: I95efdc7888e44f2b4227f9c0d892b9102cead0bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2469616Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 43b4fefd
......@@ -432,6 +432,7 @@ class BlendStateExt final
static constexpr Type GetMask(const size_t drawBuffers)
{
ASSERT(drawBuffers > 0);
ASSERT(drawBuffers <= IMPLEMENTATION_MAX_DRAW_BUFFERS);
return static_cast<Type>(0xFFFFFFFFFFFFFFFFull >> (64 - drawBuffers * kBits));
}
......
......@@ -123,10 +123,6 @@ constexpr gl::ShaderMap<vk::ImageLayout> kShaderWriteImageLayouts = {
{gl::ShaderType::Geometry, vk::ImageLayout::GeometryShaderWrite},
{gl::ShaderType::Compute, vk::ImageLayout::ComputeShaderWrite}};
constexpr VkColorComponentFlags kAllColorChannelsMask =
(VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT |
VK_COLOR_COMPONENT_A_BIT);
constexpr VkBufferUsageFlags kVertexBufferUsage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT;
constexpr size_t kDefaultValueSize = sizeof(gl::VertexAttribCurrentValueData::Values);
constexpr size_t kDefaultBufferSize = kDefaultValueSize * 16;
......@@ -648,6 +644,7 @@ ContextVk::ContextVk(const gl::State &state, gl::ErrorSet *errorSet, RendererVk
mCurrentDrawElementsType(gl::DrawElementsType::InvalidEnum),
mXfbBaseVertex(0),
mXfbVertexCountPerInstance(0),
mClearColorMasks(0),
mFlipYForCurrentSurface(false),
mIsAnyHostVisibleBufferWritten(false),
mEmulateSeamfulCubeMapSampling(false),
......@@ -669,10 +666,6 @@ ContextVk::ContextVk(const gl::State &state, gl::ErrorSet *errorSet, RendererVk
memset(&mClearColorValue, 0, sizeof(mClearColorValue));
memset(&mClearDepthStencilValue, 0, sizeof(mClearDepthStencilValue));
mClearColorMasks = gl::BlendStateExt::ColorMaskStorage::GetReplicatedValue(
kAllColorChannelsMask,
gl::BlendStateExt::ColorMaskStorage::GetMask(getCaps().maxDrawBuffers));
mNonIndexedDirtyBitsMask.set();
mNonIndexedDirtyBitsMask.reset(DIRTY_BIT_INDEX_BUFFER);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment