On 07/01/2015 23:18, Axel Davy wrote :
On 07/01/2015 18:42, Ilia Mirkin wrote :
On Wed, Jan 7, 2015 at 11:36 AM, Axel Davy <axel.d...@ens.fr> wrote:
Adds ATI1 and ATI2 support to nine.
They map to PIPE_FORMAT_RGTC1_UNORM and PIPE_FORMAT_RGTC2_UNORM,
but need special handling.
Reviewed-by: David Heidelberg <da...@ixit.cz>
Signed-off-by: Axel Davy <axel.d...@ens.fr>
Signed-off-by: Xavier Bouchoux <xavi...@gmail.com>
Cc: "10.4" <mesa-sta...@lists.freedesktop.org>
---
src/gallium/state_trackers/nine/adapter9.c | 3 +++
src/gallium/state_trackers/nine/basetexture9.c | 9 ++++++---
src/gallium/state_trackers/nine/cubetexture9.c | 4 ++++
src/gallium/state_trackers/nine/nine_pipe.h | 2 ++
src/gallium/state_trackers/nine/surface9.c | 19
+++++++++++++++----
src/gallium/state_trackers/nine/volumetexture9.c | 4 ++++
6 files changed, 34 insertions(+), 7 deletions(-)
diff --git a/src/gallium/state_trackers/nine/adapter9.c
b/src/gallium/state_trackers/nine/adapter9.c
index 871a9a3..481f863 100644
--- a/src/gallium/state_trackers/nine/adapter9.c
+++ b/src/gallium/state_trackers/nine/adapter9.c
@@ -302,6 +302,9 @@ NineAdapter9_CheckDeviceFormat( struct
NineAdapter9 *This,
return D3DERR_NOTAVAILABLE;
}
+ /* we support ATI1 and ATI2 hack only for 2D textures */
+ if (RType != D3DRTYPE_TEXTURE && (CheckFormat == D3DFMT_ATI1 ||
CheckFormat == D3DFMT_ATI2))
+ return D3DERR_NOTAVAILABLE;
/* if (Usage & D3DUSAGE_NONSECURE) { don't know the
implications of this } */
/* if (Usage & D3DUSAGE_SOFTWAREPROCESSING) { we can always
support this } */
diff --git a/src/gallium/state_trackers/nine/basetexture9.c
b/src/gallium/state_trackers/nine/basetexture9.c
index ffccafd..ea9af94 100644
--- a/src/gallium/state_trackers/nine/basetexture9.c
+++ b/src/gallium/state_trackers/nine/basetexture9.c
@@ -486,9 +486,12 @@ NineBaseTexture9_UpdateSamplerView( struct
NineBaseTexture9 *This,
swizzle[1] = PIPE_SWIZZLE_ZERO;
swizzle[2] = PIPE_SWIZZLE_ZERO;
swizzle[3] = PIPE_SWIZZLE_ONE;
- } else if (resource->format != PIPE_FORMAT_A8_UNORM) {
- /* A8 is the only exception that should have 0.0 as default
values
- * for RGB. It is already what gallium does. All the other
ones
+ } else if (resource->format != PIPE_FORMAT_A8_UNORM &&
+ resource->format != PIPE_FORMAT_RGTC1_UNORM) {
+ /* exceptions:
+ * A8 should have 0.0 as default values for RGB.
+ * ATI1/RGTC1 should be r 0 0 1 (tested on windows).
But RGTC2 is rg11??
I'll double check
Yes, ATI1 is r001 and ATI2 rg11
Axel
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev