As per IRC discussion, ignore -- I thought a user could hit this, but the pool is checked in CopySurface's callers.
On Sat, Apr 25, 2015 at 4:23 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > 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