radeonsi: add an initial dump_debug_state implementation dumping shaders
[mesa.git] / src / gallium / drivers / svga / svga_state_fs.c
index 7931528c661421f97fdd48ec32f3edd36a6e0468..8cdce742b3bb6c18e695ce0bbfc730b6ef6edc4f 100644 (file)
@@ -41,7 +41,7 @@
 
 
 
-static INLINE int
+static inline int
 compare_fs_keys(const struct svga_fs_compile_key *a,
                 const struct svga_fs_compile_key *b)
 {
@@ -157,9 +157,7 @@ compile_fs(struct svga_context *svga,
       }
    }
 
-   if (variant->nr_tokens * sizeof(variant->tokens[0])
-       + sizeof(SVGA3dCmdDefineShader) + sizeof(SVGA3dCmdHeader)
-       >= SVGA_CB_MAX_COMMAND_SIZE) {
+   if (svga_shader_too_large(svga, variant)) {
       /* too big, use dummy shader */
       debug_printf("Shader too large (%lu bytes),"
                    " using dummy shader instead.\n",
@@ -340,7 +338,7 @@ make_fs_key(const struct svga_context *svga,
                                     == PIPE_SPRITE_COORD_LOWER_LEFT);
 
    /* SVGA_NEW_FRAME_BUFFER */
-   if (fs->base.info.color0_writes_all_cbufs) {
+   if (fs->base.info.properties[TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS]) {
       /* Replicate color0 output to N colorbuffers */
       key->write_color0_to_n_cbufs = svga->curr.framebuffer.nr_cbufs;
    }
@@ -404,14 +402,6 @@ emit_hw_fs(struct svga_context *svga, unsigned dirty)
 
    if (variant != svga->state.hw_draw.fs) {
       if (svga_have_gb_objects(svga)) {
-         /*
-          * Bind is necessary here only because pipebuffer_fenced may move
-          * the shader contents around....
-          */
-         ret = SVGA3D_BindGBShader(svga->swc, variant->gb_shader);
-         if (ret != PIPE_OK)
-            return ret;
-
          ret = SVGA3D_SetGBShader(svga->swc, SVGA3D_SHADERTYPE_PS,
                                   variant->gb_shader);
          if (ret != PIPE_OK)