st/nine: Remove impossible cases with Managed textures
authorAxel Davy <axel.davy@ens.fr>
Thu, 19 Feb 2015 15:35:45 +0000 (16:35 +0100)
committerAxel Davy <axel.davy@ens.fr>
Wed, 29 Apr 2015 06:28:11 +0000 (08:28 +0200)
Copying to/from a Managed texture is forbidden.
Rendering to a Managed texture is forbidden.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
src/gallium/state_trackers/nine/surface9.c
src/gallium/state_trackers/nine/volume9.c

index 3a0b4d0c9483c5b44ebe26be0bd49774afe5c059..5c6b3bf2c3d3695f767a4e4bc96d793cdd4da834 100644 (file)
@@ -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);
index 24d5d53f01d0efec4b56916ba1889855ca747c2f..8c9f148373b1c45945ef682f9fcd679472a7520b 100644 (file)
@@ -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);