From f8d11b2e8ebaab2845080900ff4a2068f9a20b5f Mon Sep 17 00:00:00 2001 From: Jerome Glisse Date: Thu, 2 Sep 2010 16:53:33 -0400 Subject: r600g: force unbind of previously bind sampler/sampler_view Previously bind sampler/sampler_view can be converted and endup overwritting the current state we want to schedule. Example : bind texA texB to sampler_view[0] & sampler_view[1], render, bind texB to sampler_view[0] render. Now state associated to texB are set to configure sampler_view slot 0, but as we don't unbind sampler_view[1] still point to texB state so we end up with sampler_view[1] overwritting sampler_view[0], which gives wrong rendering if next rendering bind texA to sampler_view[0], it will endup as texB is bound to sampler_view[0]. If you are not confuse at that point give me a call i will be buying you beer. Signed-off-by: Jerome Glisse --- src/gallium/winsys/r600/drm/radeon_ctx.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'src/gallium/winsys') diff --git a/src/gallium/winsys/r600/drm/radeon_ctx.c b/src/gallium/winsys/r600/drm/radeon_ctx.c index 47fca76136..5d9cdca112 100644 --- a/src/gallium/winsys/r600/drm/radeon_ctx.c +++ b/src/gallium/winsys/r600/drm/radeon_ctx.c @@ -321,7 +321,6 @@ void radeon_ctx_dump_bof(struct radeon_ctx *ctx, const char *file) bof_decref(device_id); device_id = NULL; /* dump relocs */ -printf("%d relocs\n", ctx->nreloc); blob = bof_blob(ctx->nreloc * 16, ctx->reloc); if (blob == NULL) goto out_err; @@ -330,7 +329,6 @@ printf("%d relocs\n", ctx->nreloc); bof_decref(blob); blob = NULL; /* dump cs */ -printf("%d pm4\n", ctx->cdwords); blob = bof_blob(ctx->cdwords * 4, ctx->pm4); if (blob == NULL) goto out_err; @@ -377,7 +375,6 @@ printf("%d pm4\n", ctx->cdwords); if (bof_object_set(root, "bo", array)) goto out_err; bof_dump_file(root, file); -printf("done dump\n"); out_err: bof_decref(blob); bof_decref(array); -- cgit v1.2.3