Commit 4416247c by Luc Ferron Committed by Commit Bot

Vulkan: Enable point sprite end2end tests

Bug: angleproject:2447 Change-Id: I92a6ed730dd2048b055d32d1f149a29172c7f38a Reviewed-on: https://chromium-review.googlesource.com/999822Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Luc Ferron <lucferron@chromium.org>
parent d91c3793
...@@ -439,11 +439,14 @@ gl::Error VertexArrayVk::onDraw(const gl::Context *context, ...@@ -439,11 +439,14 @@ gl::Error VertexArrayVk::onDraw(const gl::Context *context,
} }
else if (mVertexBuffersDirty || newCommandBuffer) else if (mVertexBuffersDirty || newCommandBuffer)
{ {
vk::CommandBuffer *commandBuffer = drawNode->getInsideRenderPassCommands(); if (maxAttrib > 0)
commandBuffer->bindVertexBuffers(0, maxAttrib, mCurrentArrayBufferHandles.data(), {
mCurrentArrayBufferOffsets.data()); vk::CommandBuffer *commandBuffer = drawNode->getInsideRenderPassCommands();
updateArrayBufferReadDependencies(drawNode, activeAttribs, commandBuffer->bindVertexBuffers(0, maxAttrib, mCurrentArrayBufferHandles.data(),
renderer->getCurrentQueueSerial()); mCurrentArrayBufferOffsets.data());
updateArrayBufferReadDependencies(drawNode, activeAttribs,
renderer->getCurrentQueueSerial());
}
mVertexBuffersDirty = false; mVertexBuffersDirty = false;
} }
......
...@@ -41,6 +41,10 @@ TEST_P(PointSpritesTest, PointCoordAndPointSizeCompliance) ...@@ -41,6 +41,10 @@ TEST_P(PointSpritesTest, PointCoordAndPointSizeCompliance)
// http://anglebug.com/1643 // http://anglebug.com/1643
ANGLE_SKIP_TEST_IF(IsAMD() && IsDesktopOpenGL() && IsWindows()); ANGLE_SKIP_TEST_IF(IsAMD() && IsDesktopOpenGL() && IsWindows());
// TODO: Point coord not yet implemented in Vulkan.
// http://anglebug.com/2457
ANGLE_SKIP_TEST_IF(IsVulkan());
const std::string fs = const std::string fs =
R"(precision mediump float; R"(precision mediump float;
void main() void main()
...@@ -472,6 +476,10 @@ TEST_P(PointSpritesTest, PointSizeAboveMaxIsClamped) ...@@ -472,6 +476,10 @@ TEST_P(PointSpritesTest, PointSizeAboveMaxIsClamped)
// framebuffer. http://anglebug.com/2113 // framebuffer. http://anglebug.com/2113
ANGLE_SKIP_TEST_IF(IsAMD() && IsOpenGL()); ANGLE_SKIP_TEST_IF(IsAMD() && IsOpenGL());
// If the center of the point ends up being outside the renderable surface, no point gets
// rendered at all on AMD. http://anglebug.com/2113
ANGLE_SKIP_TEST_IF(IsAMD() && IsVulkan());
GLfloat pointSizeRange[2] = {}; GLfloat pointSizeRange[2] = {};
glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, pointSizeRange); glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, pointSizeRange);
GLfloat maxPointSize = pointSizeRange[1]; GLfloat maxPointSize = pointSizeRange[1];
...@@ -544,4 +552,5 @@ ANGLE_INSTANTIATE_TEST(PointSpritesTest, ...@@ -544,4 +552,5 @@ ANGLE_INSTANTIATE_TEST(PointSpritesTest,
ES2_D3D11(), ES2_D3D11(),
ES2_D3D11_FL9_3(), ES2_D3D11_FL9_3(),
ES2_OPENGL(), ES2_OPENGL(),
ES2_OPENGLES()); ES2_OPENGLES(),
ES2_VULKAN());
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