svga: let svga_update_state_retry() return a bool
authorBrian Paul <brianp@vmware.com>
Thu, 22 Feb 2018 16:32:33 +0000 (09:32 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 2 Mar 2018 19:23:50 +0000 (12:23 -0700)
This will allow minor simplifications elsewhere.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Neha Bhende <bhenden@vmware.com>
src/gallium/drivers/svga/svga_state.c
src/gallium/drivers/svga/svga_state.h

index 9ca6a18e0f0e9bb0a9deb35ced60ff1907a1179a..dad78389a2365244a661b2eb314b40fcfda5aec3 100644 (file)
@@ -237,19 +237,24 @@ done:
 }
 
 
-void
+/**
+ * Update state.  If the first attempt fails, flush the command buffer
+ * and retry.
+ * \return  true if success, false if second attempt fails.
+ */
+bool
 svga_update_state_retry(struct svga_context *svga, unsigned max_level)
 {
    enum pipe_error ret;
 
    ret = svga_update_state( svga, max_level );
 
-   if (ret == PIPE_ERROR_OUT_OF_MEMORY) {
+   if (ret != PIPE_OK) {
       svga_context_flush(svga, NULL);
       ret = svga_update_state( svga, max_level );
    }
 
-   assert( ret == PIPE_OK );
+   return ret == PIPE_OK;
 }
 
 
index 04b20e161feceee4a6c095ab20abf1e863cf8059..d75617860e624e75305337159ef04df7c2983d6e 100644 (file)
@@ -91,9 +91,7 @@ extern struct svga_tracked_state svga_update_swtnl_vdecl;
 enum pipe_error svga_update_state( struct svga_context *svga,
                                    unsigned level );
 
-void svga_update_state_retry( struct svga_context *svga,
-                              unsigned level );
-
+bool svga_update_state_retry(struct svga_context *svga, unsigned level);
 
 enum pipe_error svga_emit_initial_state( struct svga_context *svga );