GL: fix clear-on-init of depth/stencil textures.
Disable the scissor test during clear. Change-Id: Ia6945304c257867ed5cb6a6ae0c2c49998a33ca7 Bug: dawn:1340 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/85143 Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
This commit is contained in:
parent
cd2a3ffcc0
commit
9be06c8d23
|
@ -258,6 +258,7 @@ namespace dawn::native::opengl {
|
|||
GLuint framebuffer = 0;
|
||||
gl.GenFramebuffers(1, &framebuffer);
|
||||
gl.BindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
|
||||
gl.Disable(GL_SCISSOR_TEST);
|
||||
|
||||
GLenum attachment;
|
||||
if (range.aspects == (Aspect::Depth | Aspect::Stencil)) {
|
||||
|
@ -328,6 +329,7 @@ namespace dawn::native::opengl {
|
|||
}
|
||||
}
|
||||
|
||||
gl.Enable(GL_SCISSOR_TEST);
|
||||
gl.DeleteFramebuffers(1, &framebuffer);
|
||||
} else {
|
||||
ASSERT(range.aspects == Aspect::Color);
|
||||
|
|
|
@ -106,25 +106,17 @@ namespace {
|
|||
GetParam().mMipCount > 1 &&
|
||||
HasToggleEnabled("disable_r8_rg8_mipmaps"));
|
||||
|
||||
// Copies from depth textures not fully supported on the OpenGL backend right now.
|
||||
DAWN_SUPPRESS_TEST_IF(GetParam().mFormat == wgpu::TextureFormat::Depth32Float &&
|
||||
(IsOpenGL() || IsOpenGLES()));
|
||||
|
||||
// Copies from stencil textures not fully supported on the OpenGL backend right now.
|
||||
// TODO(crbug.com/dawn/667): Work around the fact that some platforms do not support
|
||||
// reading from depth/stencil.
|
||||
DAWN_SUPPRESS_TEST_IF(GetParam().mFormat == wgpu::TextureFormat::Depth24PlusStencil8 &&
|
||||
GetParam().mAspect == wgpu::TextureAspect::StencilOnly &&
|
||||
(IsOpenGL() || IsOpenGLES()));
|
||||
HasToggleEnabled("disable_depth_stencil_read"));
|
||||
|
||||
// TODO(crbug.com/dawn/593): Test depends on glTextureView which is unsupported on GLES.
|
||||
DAWN_SUPPRESS_TEST_IF(GetParam().mFormat == wgpu::TextureFormat::Depth24PlusStencil8 &&
|
||||
GetParam().mAspect == wgpu::TextureAspect::DepthOnly &&
|
||||
IsOpenGLES());
|
||||
|
||||
// Sampled depth only populates the first texel when running on OpenGL Mesa.
|
||||
DAWN_SUPPRESS_TEST_IF(GetParam().mFormat == wgpu::TextureFormat::Depth24PlusStencil8 &&
|
||||
GetParam().mAspect == wgpu::TextureAspect::DepthOnly &&
|
||||
IsOpenGL() && IsLinux());
|
||||
|
||||
// GL may support the feature, but reading data back is not implemented.
|
||||
DAWN_TEST_UNSUPPORTED_IF(GetParam().mFormat == wgpu::TextureFormat::BC1RGBAUnorm &&
|
||||
(IsOpenGL() || IsOpenGLES()));
|
||||
|
|
Loading…
Reference in New Issue