Selaa lähdekoodia

draw: Avoid NULL pointer dereference when binding NULL fragment shaders.

Now that the draw module avoids flushing, it may flush precisely when
binding a NULL shader, so care must be taken when restoring the original
fragment shader.

Reviewed-by: Brian Paul <brianp@vmware.com>
tags/i965-primitive-restart-v2
José Fonseca 13 vuotta sitten
vanhempi
commit
edb1970795

+ 1
- 1
src/gallium/auxiliary/draw/draw_pipe_aaline.c Näytä tiedosto

@@ -738,7 +738,7 @@ aaline_flush(struct draw_stage *stage, unsigned flags)

/* restore original frag shader, texture, sampler state */
draw->suspend_flushing = TRUE;
aaline->driver_bind_fs_state(pipe, aaline->fs->driver_fs);
aaline->driver_bind_fs_state(pipe, aaline->fs ? aaline->fs->driver_fs : NULL);
aaline->driver_bind_sampler_states(pipe, aaline->num_samplers,
aaline->state.sampler);
aaline->driver_set_sampler_views(pipe,

+ 1
- 1
src/gallium/auxiliary/draw/draw_pipe_aapoint.c Näytä tiedosto

@@ -744,7 +744,7 @@ aapoint_flush(struct draw_stage *stage, unsigned flags)

/* restore original frag shader */
draw->suspend_flushing = TRUE;
aapoint->driver_bind_fs_state(pipe, aapoint->fs->driver_fs);
aapoint->driver_bind_fs_state(pipe, aapoint->fs ? aapoint->fs->driver_fs : NULL);

/* restore original rasterizer state */
if (draw->rast_handle) {

+ 1
- 1
src/gallium/auxiliary/draw/draw_pipe_pstipple.c Näytä tiedosto

@@ -565,7 +565,7 @@ pstip_flush(struct draw_stage *stage, unsigned flags)

/* restore original frag shader, texture, sampler state */
draw->suspend_flushing = TRUE;
pstip->driver_bind_fs_state(pipe, pstip->fs->driver_fs);
pstip->driver_bind_fs_state(pipe, pstip->fs ? pstip->fs->driver_fs : NULL);
pstip->driver_bind_sampler_states(pipe, pstip->num_samplers,
pstip->state.samplers);
pstip->driver_set_sampler_views(pipe,

Loading…
Peruuta
Tallenna