I recommend not using PIPE_BIND_TRANSFER_READ/WRITE. Transfers with multisample textures should be supported, but the mapped texture is always a resolved single-sample copy, so it's not really an MSAA transfer.
Marek On Fri, Jan 30, 2015 at 9:34 PM, Axel Davy <axel.d...@ens.fr> wrote: > Signed-off-by: Axel Davy <axel.d...@ens.fr> > --- > src/gallium/state_trackers/nine/adapter9.c | 12 +++++++++--- > src/gallium/state_trackers/nine/nine_pipe.h | 25 ------------------------- > 2 files changed, 9 insertions(+), 28 deletions(-) > > diff --git a/src/gallium/state_trackers/nine/adapter9.c > b/src/gallium/state_trackers/nine/adapter9.c > index e9bb9c0..069cc03 100644 > --- a/src/gallium/state_trackers/nine/adapter9.c > +++ b/src/gallium/state_trackers/nine/adapter9.c > @@ -359,6 +359,7 @@ NineAdapter9_CheckDeviceMultiSampleType( struct > NineAdapter9 *This, > struct pipe_screen *screen; > HRESULT hr; > enum pipe_format pf; > + unsigned bind; > > DBG("This=%p DeviceType=%s SurfaceFormat=%s Windowed=%i > MultiSampleType=%u " > "pQualityLevels=%p\n", This, nine_D3DDEVTYPE_to_str(DeviceType), > @@ -369,9 +370,14 @@ NineAdapter9_CheckDeviceMultiSampleType( struct > NineAdapter9 *This, > if (FAILED(hr)) > return hr; > > - pf = d3d9_to_pipe_format_checked_no_bind(screen, SurfaceFormat, > - PIPE_TEXTURE_2D, > - MultiSampleType, FALSE); > + if (depth_stencil_format(SurfaceFormat)) > + bind = d3d9_get_pipe_depth_format_bindings(SurfaceFormat); > + else /* render-target */ > + bind = PIPE_BIND_SAMPLER_VIEW | PIPE_BIND_TRANSFER_READ | > + PIPE_BIND_TRANSFER_WRITE | PIPE_BIND_RENDER_TARGET; > + > + pf = d3d9_to_pipe_format_checked(screen, SurfaceFormat, PIPE_TEXTURE_2D, > + MultiSampleType, bind, FALSE); > > if (pf == PIPE_FORMAT_NONE) { > DBG("%s with %u samples not available.\n", > diff --git a/src/gallium/state_trackers/nine/nine_pipe.h > b/src/gallium/state_trackers/nine/nine_pipe.h > index 7295bdf..17844d5 100644 > --- a/src/gallium/state_trackers/nine/nine_pipe.h > +++ b/src/gallium/state_trackers/nine/nine_pipe.h > @@ -309,31 +309,6 @@ d3d9_to_pipe_format_checked(struct pipe_screen *screen, > return PIPE_FORMAT_NONE; > } > > -/* same that above, but determines binding flags */ > -static INLINE enum pipe_format > -d3d9_to_pipe_format_checked_no_bind(struct pipe_screen *screen, > - D3DFORMAT format, > - enum pipe_texture_target target, > - unsigned sample_count, > - boolean srgb) > -{ > - enum pipe_format result; > - unsigned bindings; > - > - result = d3d9_to_pipe_format_internal(format); > - if (result == PIPE_FORMAT_NONE) > - return PIPE_FORMAT_NONE; > - > - bindings = util_format_is_depth_or_stencil(result) ? > - PIPE_BIND_DEPTH_STENCIL : PIPE_BIND_RENDER_TARGET; > - if (srgb) > - result = util_format_srgb(result); > - > - if (format_check_internal(result)) > - return result; > - return PIPE_FORMAT_NONE; > -} > - > static INLINE const char * > d3dformat_to_string(D3DFORMAT fmt) > { > -- > 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