i915g: fix null deref in draw_rect emission
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
1df1e0841d
commit
b8e44f648e
|
@ -413,7 +413,6 @@ i915_emit_hardware_state(struct i915_context *i915 )
|
|||
{
|
||||
uint w, h;
|
||||
struct pipe_surface *cbuf_surface = i915->framebuffer.cbufs[0];
|
||||
struct i915_texture *tex = i915_texture(cbuf_surface->texture);
|
||||
unsigned x, y;
|
||||
int layer;
|
||||
uint32_t draw_offset;
|
||||
|
@ -422,11 +421,16 @@ i915_emit_hardware_state(struct i915_context *i915 )
|
|||
ret = framebuffer_size(&i915->framebuffer, &w, &h);
|
||||
assert(ret);
|
||||
|
||||
if (cbuf_surface) {
|
||||
struct i915_texture *tex = i915_texture(cbuf_surface->texture);
|
||||
layer = cbuf_surface->u.tex.first_layer;
|
||||
|
||||
x = tex->image_offset[cbuf_surface->u.tex.level][layer].nblocksx;
|
||||
y = tex->image_offset[cbuf_surface->u.tex.level][layer].nblocksy;
|
||||
|
||||
} else
|
||||
x = y = 0;
|
||||
|
||||
draw_offset = x | (y << 16);
|
||||
|
||||
/* XXX flush only required when the draw_offset changes! */
|
||||
|
|
Loading…
Reference in New Issue