On Fri, Apr 24, 2015 at 4:11 PM, Axel Davy <axel.d...@ens.fr> wrote: > Copying to/from a Managed texture is forbidden. > Rendering to a Managed texture is forbidden. > > Signed-off-by: Axel Davy <axel.d...@ens.fr> > --- > src/gallium/state_trackers/nine/surface9.c | 23 +++++------------------ > src/gallium/state_trackers/nine/volume9.c | 19 +++---------------- > 2 files changed, 8 insertions(+), 34 deletions(-) > > diff --git a/src/gallium/state_trackers/nine/surface9.c > b/src/gallium/state_trackers/nine/surface9.c > index ec3719e..e934941 100644 > --- a/src/gallium/state_trackers/nine/surface9.c > +++ b/src/gallium/state_trackers/nine/surface9.c > @@ -165,8 +165,7 @@ NineSurface9_CreatePipeSurface( struct NineSurface9 > *This, const int sRGB ) > struct pipe_surface templ; > enum pipe_format srgb_format; > > - assert(This->desc.Pool == D3DPOOL_DEFAULT || > - This->desc.Pool == D3DPOOL_MANAGED); > + assert(This->desc.Pool == D3DPOOL_DEFAULT); > assert(resource); > > srgb_format = util_format_srgb(resource->format); > @@ -503,6 +502,9 @@ NineSurface9_CopySurface( struct NineSurface9 *This, > DBG("This=%p From=%p pDestPoint=%p pSourceRect=%p\n", > This, From, pDestPoint, pSourceRect); > > + assert(This->base.pool != D3DPOOL_MANAGED && > + From->base.pool != D3DPOOL_MANAGED);
This seems a little harsh... everything else is a user_assert. This function is callable by the user, so I think this should also be a user_assert. > + > user_assert(This->desc.Format == From->desc.Format, D3DERR_INVALIDCALL); > > dst_box.x = pDestPoint ? pDestPoint->x : 0; > @@ -543,20 +545,6 @@ NineSurface9_CopySurface( struct NineSurface9 *This, > dst_box.width = src_box.width; > dst_box.height = src_box.height; > > - /* Don't copy to device memory of managed resources. > - * We don't want to download it back again later. > - */ > - if (This->base.pool == D3DPOOL_MANAGED) > - r_dst = NULL; > - > - /* Don't copy from stale device memory of managed resources. > - * Also, don't copy between system and device if we don't have to. > - */ > - if (From->base.pool == D3DPOOL_MANAGED) { > - if (!r_dst || NineSurface9_IsDirty(From)) > - r_src = NULL; > - } > - > /* check source block align for compressed textures */ > if (util_format_is_compressed(From->base.info.format) && > ((src_box.width != From->desc.Width) || > @@ -622,8 +610,7 @@ NineSurface9_CopySurface( struct NineSurface9 *This, > From->stride, src_box.x, src_box.y); > } > > - if (This->base.pool == D3DPOOL_DEFAULT || > - This->base.pool == D3DPOOL_MANAGED) > + if (This->base.pool == D3DPOOL_DEFAULT) > NineSurface9_MarkContainerDirty(This); > if (!r_dst && This->base.resource) > NineSurface9_AddDirtyRect(This, &dst_box); > diff --git a/src/gallium/state_trackers/nine/volume9.c > b/src/gallium/state_trackers/nine/volume9.c > index 24d5d53..8c9f148 100644 > --- a/src/gallium/state_trackers/nine/volume9.c > +++ b/src/gallium/state_trackers/nine/volume9.c > @@ -355,6 +355,8 @@ NineVolume9_CopyVolume( struct NineVolume9 *This, > DBG("This=%p From=%p dstx=%u dsty=%u dstz=%u pSrcBox=%p\n", > This, From, dstx, dsty, dstz, pSrcBox); > > + assert(This->desc.Pool != D3DPOOL_MANAGED && > + From->desc.Pool != D3DPOOL_MANAGED); Same comment here -- user_assert I think. > user_assert(This->desc.Format == From->desc.Format, D3DERR_INVALIDCALL); > > dst_box.x = dstx; > @@ -392,20 +394,6 @@ NineVolume9_CopyVolume( struct NineVolume9 *This, > dst_box.height = src_box.height; > dst_box.depth = src_box.depth; > > - /* Don't copy to device memory of managed resources. > - * We don't want to download it back again later. > - */ > - if (This->desc.Pool == D3DPOOL_MANAGED) > - r_dst = NULL; > - > - /* Don't copy from stale device memory of managed resources. > - * Also, don't copy between system and device if we don't have to. > - */ > - if (From->desc.Pool == D3DPOOL_MANAGED) { > - if (!r_dst || NineVolume9_IsDirty(From)) > - r_src = NULL; > - } > - > if (r_dst && r_src) { > pipe->resource_copy_region(pipe, > r_dst, This->level, > @@ -452,8 +440,7 @@ NineVolume9_CopyVolume( struct NineVolume9 *This, > src_box.x, src_box.y, src_box.z); > } > > - if (This->desc.Pool == D3DPOOL_DEFAULT || > - This->desc.Pool == D3DPOOL_MANAGED) > + if (This->desc.Pool == D3DPOOL_DEFAULT) > NineVolume9_MarkContainerDirty(This); > if (!r_dst && This->resource) > NineVolume9_AddDirtyRegion(This, &dst_box); > -- > 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