mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
svga: Fix NULL dereference.
Probably introduced with the surface view move from screen to context.
This commit is contained in:
parent
7ea729a185
commit
e16e70610c
3 changed files with 9 additions and 7 deletions
|
|
@ -55,7 +55,8 @@ svga_get_tex_sampler_view(struct pipe_context *pipe,
|
|||
struct pipe_resource *pt,
|
||||
unsigned min_lod, unsigned max_lod)
|
||||
{
|
||||
struct svga_screen *ss = svga_screen(pt->screen);
|
||||
struct svga_context *svga = svga_context(pipe);
|
||||
struct svga_screen *ss = svga_screen(pipe->screen);
|
||||
struct svga_texture *tex = svga_texture(pt);
|
||||
struct svga_sampler_view *sv = NULL;
|
||||
SVGA3dSurfaceFlags flags = SVGA3D_SURFACE_HINT_TEXTURE;
|
||||
|
|
@ -138,7 +139,7 @@ svga_get_tex_sampler_view(struct pipe_context *pipe,
|
|||
pt->last_level);
|
||||
|
||||
sv->age = tex->age;
|
||||
sv->handle = svga_texture_view_surface(pipe, tex, flags, format,
|
||||
sv->handle = svga_texture_view_surface(svga, tex, flags, format,
|
||||
min_lod,
|
||||
max_lod - min_lod + 1,
|
||||
-1, -1,
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ svga_texture_copy_handle(struct svga_context *svga,
|
|||
|
||||
|
||||
struct svga_winsys_surface *
|
||||
svga_texture_view_surface(struct pipe_context *pipe,
|
||||
svga_texture_view_surface(struct svga_context *svga,
|
||||
struct svga_texture *tex,
|
||||
SVGA3dSurfaceFlags flags,
|
||||
SVGA3dSurfaceFormat format,
|
||||
|
|
@ -110,7 +110,7 @@ svga_texture_view_surface(struct pipe_context *pipe,
|
|||
int zslice_pick,
|
||||
struct svga_host_surface_cache_key *key) /* OUT */
|
||||
{
|
||||
struct svga_screen *ss = svga_screen(pipe->screen);
|
||||
struct svga_screen *ss = svga_screen(svga->pipe.screen);
|
||||
struct svga_winsys_surface *handle;
|
||||
uint32_t i, j;
|
||||
unsigned z_offset = 0;
|
||||
|
|
@ -162,7 +162,7 @@ svga_texture_view_surface(struct pipe_context *pipe,
|
|||
u_minify(tex->b.b.depth0, i + start_mip) :
|
||||
1);
|
||||
|
||||
svga_texture_copy_handle(svga_context(pipe),
|
||||
svga_texture_copy_handle(svga,
|
||||
tex->handle,
|
||||
0, 0, z_offset,
|
||||
i + start_mip,
|
||||
|
|
@ -184,6 +184,7 @@ svga_create_surface(struct pipe_context *pipe,
|
|||
struct pipe_resource *pt,
|
||||
const struct pipe_surface *surf_tmpl)
|
||||
{
|
||||
struct svga_context *svga = svga_context(pipe);
|
||||
struct svga_texture *tex = svga_texture(pt);
|
||||
struct pipe_screen *screen = pipe->screen;
|
||||
struct svga_surface *s;
|
||||
|
|
@ -259,7 +260,7 @@ svga_create_surface(struct pipe_context *pipe,
|
|||
SVGA_DBG(DEBUG_VIEWS, "svga: Surface view: yes %p, level %u face %u z %u, %p\n",
|
||||
pt, surf_tmpl->u.tex.level, face, zslice, s);
|
||||
|
||||
s->handle = svga_texture_view_surface(NULL, tex, flags, format,
|
||||
s->handle = svga_texture_view_surface(svga, tex, flags, format,
|
||||
surf_tmpl->u.tex.level,
|
||||
1, face, zslice, &s->key);
|
||||
s->real_face = 0;
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ extern boolean
|
|||
svga_surface_needs_propagation(struct pipe_surface *surf);
|
||||
|
||||
struct svga_winsys_surface *
|
||||
svga_texture_view_surface(struct pipe_context *pipe,
|
||||
svga_texture_view_surface(struct svga_context *svga,
|
||||
struct svga_texture *tex,
|
||||
SVGA3dSurfaceFlags flags,
|
||||
SVGA3dSurfaceFormat format,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue