intel: Allow binding a stencil but not a depth buffer.
Wine's d3d9 visual.c testcase tries this a lot, so I've added some piglit tests (fbo-nodepth-test, fbo-nostencil-test, fbo-stencil-only) and enabled it.
This commit is contained in:
@@ -291,6 +291,12 @@ intel_draw_buffer(GLcontext * ctx, struct gl_framebuffer *fb)
|
||||
FALLBACK(intel, INTEL_FALLBACK_STENCIL_BUFFER, GL_FALSE);
|
||||
}
|
||||
|
||||
/* If we have a (packed) stencil buffer attached but no depth buffer,
|
||||
* we still need to set up the shared depth/stencil state so we can use it.
|
||||
*/
|
||||
if (depthRegion == NULL && irbStencil && irbStencil->region)
|
||||
depthRegion = irbStencil->region;
|
||||
|
||||
/*
|
||||
* Update depth and stencil test state
|
||||
*/
|
||||
|
||||
@@ -591,7 +591,7 @@ intel_validate_framebuffer(GLcontext *ctx, struct gl_framebuffer *fb)
|
||||
intel_get_renderbuffer(fb, BUFFER_STENCIL);
|
||||
int i;
|
||||
|
||||
if (stencilRb && stencilRb != depthRb) {
|
||||
if (depthRb && stencilRb && stencilRb != depthRb) {
|
||||
/* we only support combined depth/stencil buffers, not separate
|
||||
* stencil buffers.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user