summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary
diff options
context:
space:
mode:
authorLauri Kasanen <[email protected]>2012-01-24 21:37:07 +0200
committerAlex Deucher <[email protected]>2012-02-02 16:42:06 -0500
commitc5976017e31828dd67fb54e8c11b863fffcac70b (patch)
treeb48166e7a8a84c0fa5d904ae31fed0a7c6d38e3c /src/gallium/auxiliary
parentcd2e2187cb45accb13bf89ef297324332c46f379 (diff)
gallium/postprocess: Fix depth logic
This prevents a possible lapse of the depth buffer - the situation where the app and pp have different depth buffers. NOTE: This is a candidate for the 8.0 stable branch. Signed-off-by: Lauri Kasanen <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r--src/gallium/auxiliary/postprocess/postprocess.h3
-rw-r--r--src/gallium/auxiliary/postprocess/pp_init.c7
-rw-r--r--src/gallium/auxiliary/postprocess/pp_run.c2
3 files changed, 3 insertions, 9 deletions
diff --git a/src/gallium/auxiliary/postprocess/postprocess.h b/src/gallium/auxiliary/postprocess/postprocess.h
index ef94f79997a..dfa15f713ac 100644
--- a/src/gallium/auxiliary/postprocess/postprocess.h
+++ b/src/gallium/auxiliary/postprocess/postprocess.h
@@ -72,8 +72,7 @@ void pp_free(struct pp_queue_t *);
void pp_free_fbos(struct pp_queue_t *);
void pp_debug(const char *, ...);
struct program *pp_init_prog(struct pp_queue_t *, struct pipe_screen *);
-void pp_init_fbos(struct pp_queue_t *, unsigned int, unsigned int,
- struct pipe_resource *);
+void pp_init_fbos(struct pp_queue_t *, unsigned int, unsigned int);
/* The filters */
diff --git a/src/gallium/auxiliary/postprocess/pp_init.c b/src/gallium/auxiliary/postprocess/pp_init.c
index 740d230a1e8..e2068c25e5b 100644
--- a/src/gallium/auxiliary/postprocess/pp_init.c
+++ b/src/gallium/auxiliary/postprocess/pp_init.c
@@ -135,7 +135,6 @@ pp_free_fbos(struct pp_queue_t *ppq)
pipe_surface_reference(&ppq->inner_tmps[i], NULL);
pipe_resource_reference(&ppq->inner_tmp[i], NULL);
}
- pipe_resource_reference(&ppq->depth, NULL);
pipe_surface_reference(&ppq->stencils, NULL);
pipe_resource_reference(&ppq->stencil, NULL);
@@ -196,7 +195,7 @@ pp_debug(const char *fmt, ...)
/** Allocate the temp FBOs. Called on makecurrent and resize. */
void
pp_init_fbos(struct pp_queue_t *ppq, unsigned int w,
- unsigned int h, struct pipe_resource *indepth)
+ unsigned int h)
{
struct program *p = ppq->p; /* The lazy will inherit the earth */
@@ -243,11 +242,7 @@ pp_init_fbos(struct pp_queue_t *ppq, unsigned int w,
goto error;
}
- tmp_res.format = p->surf.format = indepth->format;
tmp_res.bind = p->surf.usage = PIPE_BIND_DEPTH_STENCIL;
- pipe_resource_reference(&ppq->depth, indepth);
- if (!ppq->depth)
- goto error;
tmp_res.format = p->surf.format = PIPE_FORMAT_S8_UINT_Z24_UNORM;
diff --git a/src/gallium/auxiliary/postprocess/pp_run.c b/src/gallium/auxiliary/postprocess/pp_run.c
index ab09a5645cc..be52051ed65 100644
--- a/src/gallium/auxiliary/postprocess/pp_run.c
+++ b/src/gallium/auxiliary/postprocess/pp_run.c
@@ -49,7 +49,7 @@ pp_run(struct pp_queue_t *ppq, struct pipe_resource *in,
in->height0 != ppq->p->framebuffer.height) {
pp_debug("Resizing the temp pp buffers\n");
pp_free_fbos(ppq);
- pp_init_fbos(ppq, in->width0, in->height0, indepth);
+ pp_init_fbos(ppq, in->width0, in->height0);
}
if (in == out && ppq->n_filters == 1) {