From 231bf886dae9c7df0ae3e16acee904024a08824f Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 17 Feb 2011 10:25:57 +1000 Subject: r600g: get s3tc working on cards with crappy 64/128 bit types. Some cards don't appear to work correctly with the UNORM type, so switch to the integer type, however since gallium has no integer types yet from what I can see we need to do a hack to workaround it for the blitter. Signed-off-by: Dave Airlie --- src/gallium/drivers/r600/r600_resource.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/gallium/drivers/r600/r600_resource.h') diff --git a/src/gallium/drivers/r600/r600_resource.h b/src/gallium/drivers/r600/r600_resource.h index fdcfcd50a1..836e7491f1 100644 --- a/src/gallium/drivers/r600/r600_resource.h +++ b/src/gallium/drivers/r600/r600_resource.h @@ -64,6 +64,10 @@ struct r600_resource_texture { unsigned dirty_db; struct r600_resource_texture *flushed_depth_texture; boolean is_flushing_texture; + + /* on some cards we have to use integer 64/128-bit types + for s3tc blits, do this until gallium grows int formats */ + boolean force_int_type; }; #define R600_TEX_IS_TILED(tex, level) ((tex)->array_mode[level] != V_038000_ARRAY_LINEAR_GENERAL && (tex)->array_mode[level] != V_038000_ARRAY_LINEAR_ALIGNED) -- cgit v1.2.3