summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/svga/svga_state_rss.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/gallium/drivers/svga/svga_state_rss.c b/src/gallium/drivers/svga/svga_state_rss.c
index 515155d3ae8..0cf8be8efbd 100644
--- a/src/gallium/drivers/svga/svga_state_rss.c
+++ b/src/gallium/drivers/svga/svga_state_rss.c
@@ -275,29 +275,24 @@ emit_rss_vgpu9(struct svga_context *svga, unsigned dirty)
if (queue.rs_count) {
SVGA3dRenderState *rs;
- if (SVGA3D_BeginSetRenderState(svga->swc,
- &rs,
- queue.rs_count) != PIPE_OK)
- goto fail;
+ if (SVGA3D_BeginSetRenderState(svga->swc, &rs, queue.rs_count)
+ != PIPE_OK) {
+ /* XXX: need to poison cached hardware state on failure to ensure
+ * dirty state gets re-emitted. Fix this by re-instating partial
+ * FIFOCommit command and only updating cached hw state once the
+ * initial allocation has succeeded.
+ */
+ memset(svga->state.hw_draw.rs, 0xcd, sizeof(svga->state.hw_draw.rs));
+
+ return PIPE_ERROR_OUT_OF_MEMORY;
+ }
- memcpy(rs,
- queue.rs,
- queue.rs_count * sizeof queue.rs[0]);
+ memcpy(rs, queue.rs, queue.rs_count * sizeof queue.rs[0]);
SVGA_FIFOCommitAll(svga->swc);
}
return PIPE_OK;
-
-fail:
- /* XXX: need to poison cached hardware state on failure to ensure
- * dirty state gets re-emitted. Fix this by re-instating partial
- * FIFOCommit command and only updating cached hw state once the
- * initial allocation has succeeded.
- */
- memset(svga->state.hw_draw.rs, 0xcd, sizeof(svga->state.hw_draw.rs));
-
- return PIPE_ERROR_OUT_OF_MEMORY;
}