On Wed, Jan 7, 2015 at 11:36 AM, Axel Davy <axel.d...@ens.fr> wrote: > Reviewed-by: David Heidelberg <da...@ixit.cz> > Signed-off-by: Axel Davy <axel.d...@ens.fr> > --- > src/gallium/state_trackers/nine/cubetexture9.c | 8 ++++++++ > src/gallium/state_trackers/nine/texture9.c | 9 ++++++++- > src/gallium/state_trackers/nine/volumetexture9.c | 10 +++++++++- > 3 files changed, 25 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/state_trackers/nine/cubetexture9.c > b/src/gallium/state_trackers/nine/cubetexture9.c > index 2c607c0..43db8cb 100644 > --- a/src/gallium/state_trackers/nine/cubetexture9.c > +++ b/src/gallium/state_trackers/nine/cubetexture9.c > @@ -38,6 +38,8 @@ NineCubeTexture9_ctor( struct NineCubeTexture9 *This, > HANDLE *pSharedHandle ) > { > struct pipe_resource *info = &This->base.base.info; > + struct pipe_screen *screen = pParams->device->screen; > + enum pipe_format pf; > unsigned i; > D3DSURFACE_DESC sfdesc; > HRESULT hr; > @@ -55,6 +57,12 @@ NineCubeTexture9_ctor( struct NineCubeTexture9 *This, > if (Usage & D3DUSAGE_AUTOGENMIPMAP) > Levels = 0; > > + pf = d3d9_to_pipe_format(Format); > + if (pf == PIPE_FORMAT_NONE || > + !screen->is_format_supported(screen, pf, PIPE_TEXTURE_CUBE, 0, > PIPE_BIND_SAMPLER_VIEW)) { > + return D3DERR_INVALIDCALL; > + } > + > info->screen = pParams->device->screen; > info->target = PIPE_TEXTURE_CUBE; > info->format = d3d9_to_pipe_format(Format);
info->format = pf; here as well for parity with the other code? > diff --git a/src/gallium/state_trackers/nine/texture9.c > b/src/gallium/state_trackers/nine/texture9.c > index 8852142..4d7e950 100644 > --- a/src/gallium/state_trackers/nine/texture9.c > +++ b/src/gallium/state_trackers/nine/texture9.c > @@ -47,6 +47,7 @@ NineTexture9_ctor( struct NineTexture9 *This, > struct pipe_screen *screen = pParams->device->screen; > struct pipe_resource *info = &This->base.base.info; > struct pipe_resource *resource; > + enum pipe_format pf; > unsigned l; > D3DSURFACE_DESC sfdesc; > HRESULT hr; > @@ -92,9 +93,15 @@ NineTexture9_ctor( struct NineTexture9 *This, > if (Usage & D3DUSAGE_AUTOGENMIPMAP) > Levels = 0; > > + pf = d3d9_to_pipe_format(Format); > + if (Format != D3DFMT_NULL && (pf == PIPE_FORMAT_NONE || None of the others have this check... is null valid here but not for cube/volume? -ilia _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev