-static INLINE int
+static inline int
compare_fs_keys(const struct svga_fs_compile_key *a,
const struct svga_fs_compile_key *b)
{
}
}
- 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",
== 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;
}
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)