On Sat, Jan 10, 2015 at 5:33 AM, Axel Davy <axel.d...@ens.fr> wrote: > Reviewed-by: David Heidelberg <da...@ixit.cz> > Signed-off-by: Axel Davy <axel.d...@ens.fr>
Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> > --- It is customary to include what changes were made from v1 -> v2. I do it below the --- line since I don't think it belongs in git commit history, others include it in the log (I believe due to the simplicity of usage, but perhaps there's another argument). > src/gallium/state_trackers/nine/cubetexture9.c | 10 +++++++++- > src/gallium/state_trackers/nine/texture9.c | 9 ++++++++- > src/gallium/state_trackers/nine/volumetexture9.c | 10 +++++++++- > 3 files changed, 26 insertions(+), 3 deletions(-) > > diff --git a/src/gallium/state_trackers/nine/cubetexture9.c > b/src/gallium/state_trackers/nine/cubetexture9.c > index 2c607c0..bb1219a 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,9 +57,15 @@ 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; > info->width0 = EdgeLength; > info->height0 = EdgeLength; > info->depth0 = 1; > 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 || > + !screen->is_format_supported(screen, pf, PIPE_TEXTURE_2D, 0, > PIPE_BIND_SAMPLER_VIEW))) { > + return D3DERR_INVALIDCALL; > + } > + > info->screen = screen; > info->target = PIPE_TEXTURE_2D; > - info->format = d3d9_to_pipe_format(Format); > + info->format = pf; > info->width0 = Width; > info->height0 = Height; > info->depth0 = 1; > diff --git a/src/gallium/state_trackers/nine/volumetexture9.c > b/src/gallium/state_trackers/nine/volumetexture9.c > index 9366dc9..f116899 100644 > --- a/src/gallium/state_trackers/nine/volumetexture9.c > +++ b/src/gallium/state_trackers/nine/volumetexture9.c > @@ -37,6 +37,8 @@ NineVolumeTexture9_ctor( struct NineVolumeTexture9 *This, > HANDLE *pSharedHandle ) > { > struct pipe_resource *info = &This->base.base.info; > + struct pipe_screen *screen = pParams->device->screen; > + enum pipe_format pf; > unsigned l; > D3DVOLUME_DESC voldesc; > HRESULT hr; > @@ -57,9 +59,15 @@ NineVolumeTexture9_ctor( struct NineVolumeTexture9 *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_3D, 0, > PIPE_BIND_SAMPLER_VIEW)) { > + return D3DERR_INVALIDCALL; > + } > + > info->screen = pParams->device->screen; > info->target = PIPE_TEXTURE_3D; > - info->format = d3d9_to_pipe_format(Format); > + info->format = pf; > info->width0 = Width; > info->height0 = Height; > info->depth0 = Depth; > -- > 2.1.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev