summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/svga/svga_pipe_fs.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2014-01-31 17:23:11 -0700
committerBrian Paul <brianp@vmware.com>2014-02-03 12:40:13 -0700
commit4686f610b18a04bc6213ccadf7be1176bbda3e34 (patch)
treef3465d5134ec8c0d4f029f87d894f3ce2d6dff99 /src/gallium/drivers/svga/svga_pipe_fs.c
parent9bace99d77642f8fbd46b1f0be025ad758f83f5e (diff)
svga: refactor some shader code
Put common code in new svga_shader.c file. Considate separate vertex/ fragment shader ID generation. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Diffstat (limited to 'src/gallium/drivers/svga/svga_pipe_fs.c')
-rw-r--r--src/gallium/drivers/svga/svga_pipe_fs.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/gallium/drivers/svga/svga_pipe_fs.c b/src/gallium/drivers/svga/svga_pipe_fs.c
index 7bdcd8eb4bb..75299c50db7 100644
--- a/src/gallium/drivers/svga/svga_pipe_fs.c
+++ b/src/gallium/drivers/svga/svga_pipe_fs.c
@@ -35,6 +35,7 @@
#include "svga_hw_reg.h"
#include "svga_cmd.h"
#include "svga_debug.h"
+#include "svga_shader.h"
static void *
@@ -98,17 +99,8 @@ svga_delete_fs_state(struct pipe_context *pipe, void *shader)
for (variant = fs->base.variants; variant; variant = tmp) {
tmp = variant->next;
- ret = SVGA3D_DestroyShader(svga->swc, variant->id, SVGA3D_SHADERTYPE_PS);
- if (ret != PIPE_OK) {
- svga_context_flush(svga, NULL);
- ret = SVGA3D_DestroyShader(svga->swc, variant->id,
- SVGA3D_SHADERTYPE_PS);
- assert(ret == PIPE_OK);
- }
-
- util_bitmask_clear(svga->fs_bm, variant->id);
-
- svga_destroy_shader_variant(variant);
+ ret = svga_destroy_shader_variant(svga, SVGA3D_SHADERTYPE_PS, variant);
+ (void) ret; /* PIPE_ERROR_ not handled yet */
/*
* Remove stale references to this variant to ensure a new variant on the