diff options
author | Axel Davy <[email protected]> | 2015-01-10 14:58:03 +0100 |
---|---|---|
committer | Axel Davy <[email protected]> | 2015-02-06 00:07:18 +0100 |
commit | 27e438e35630819914bd42c5aa27fe6e53ebe491 (patch) | |
tree | 4987185039ea57de6f52f3b18a178a82e47fa16c /src/gallium/state_trackers/nine/surface9.c | |
parent | f8713b1bfd0099e262f1224bb5fb02ee42838d55 (diff) |
st/nine: Refactor format d3d9 to pipe conversion
Move the checks of whether the format is supported
into a common place.
The advantage is that allows to handle when a d3d9
format can be mapped to several formats, and that
cards don't support all of them.
Reviewed-by: Tiziano Bacocco <[email protected]>
Signed-off-by: Axel Davy <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/nine/surface9.c')
-rw-r--r-- | src/gallium/state_trackers/nine/surface9.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/nine/surface9.c b/src/gallium/state_trackers/nine/surface9.c index 8c8d6537f00..21a47071acb 100644 --- a/src/gallium/state_trackers/nine/surface9.c +++ b/src/gallium/state_trackers/nine/surface9.c @@ -69,7 +69,6 @@ NineSurface9_ctor( struct NineSurface9 *This, This->base.info.screen = pParams->device->screen; This->base.info.target = PIPE_TEXTURE_2D; - This->base.info.format = d3d9_to_pipe_format(pDesc->Format); This->base.info.width0 = pDesc->Width; This->base.info.height0 = pDesc->Height; This->base.info.depth0 = 1; @@ -79,6 +78,12 @@ NineSurface9_ctor( struct NineSurface9 *This, This->base.info.usage = PIPE_USAGE_DEFAULT; This->base.info.bind = PIPE_BIND_SAMPLER_VIEW; This->base.info.flags = 0; + This->base.info.format = d3d9_to_pipe_format_checked(This->base.info.screen, + pDesc->Format, + This->base.info.target, + This->base.info.nr_samples, + This->base.info.bind, + FALSE); if (pDesc->Usage & D3DUSAGE_RENDERTARGET) This->base.info.bind |= PIPE_BIND_RENDER_TARGET; |