st/nine: Remove impossible cases with Managed textures
Copying to/from a Managed texture is forbidden. Rendering to a Managed texture is forbidden. Signed-off-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
@@ -166,8 +166,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);
|
||||
@@ -504,6 +503,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);
|
||||
|
||||
user_assert(This->desc.Format == From->desc.Format, D3DERR_INVALIDCALL);
|
||||
|
||||
dst_box.x = pDestPoint ? pDestPoint->x : 0;
|
||||
@@ -544,20 +546,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) ||
|
||||
@@ -623,8 +611,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);
|
||||
|
||||
@@ -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);
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user