diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/state_trackers/nine/nine_pipe.h | 21 | ||||
-rw-r--r-- | src/gallium/state_trackers/nine/surface9.c | 2 |
2 files changed, 17 insertions, 6 deletions
diff --git a/src/gallium/state_trackers/nine/nine_pipe.h b/src/gallium/state_trackers/nine/nine_pipe.h index 34721931087..1b5a83cf30c 100644 --- a/src/gallium/state_trackers/nine/nine_pipe.h +++ b/src/gallium/state_trackers/nine/nine_pipe.h @@ -44,6 +44,8 @@ void nine_convert_sampler_state(struct cso_context *, int idx, const DWORD *); void nine_pipe_context_clear(struct NineDevice9 *); +#define is_ATI1_ATI2(format) (format == PIPE_FORMAT_RGTC1_UNORM || format == PIPE_FORMAT_RGTC2_UNORM) + static inline void rect_to_pipe_box(struct pipe_box *dst, const RECT *src) { @@ -728,8 +730,14 @@ static inline unsigned nine_format_get_level_alloc_size(enum pipe_format format, w = u_minify(width, level); h = u_minify(height, level); - size = nine_format_get_stride(format, w) * - util_format_get_nblocksy(format, h); + if (is_ATI1_ATI2(format)) { + /* For "unknown" formats like ATIx use width * height bytes */ + size = w * h; + } else { + size = nine_format_get_stride(format, w) * + util_format_get_nblocksy(format, h); + } + return size; } @@ -745,8 +753,13 @@ static inline unsigned nine_format_get_size_and_offsets(enum pipe_format format, w = u_minify(width, l); h = u_minify(height, l); offsets[l] = size; - size += nine_format_get_stride(format, w) * - util_format_get_nblocksy(format, h); + if (is_ATI1_ATI2(format)) { + /* For "unknown" formats like ATIx use width * height bytes */ + size += w * h; + } else { + size += nine_format_get_stride(format, w) * + util_format_get_nblocksy(format, h); + } } return size; diff --git a/src/gallium/state_trackers/nine/surface9.c b/src/gallium/state_trackers/nine/surface9.c index 0cedd4ecf3f..4d54309ece3 100644 --- a/src/gallium/state_trackers/nine/surface9.c +++ b/src/gallium/state_trackers/nine/surface9.c @@ -42,8 +42,6 @@ #define DBG_CHANNEL DBG_SURFACE -#define is_ATI1_ATI2(format) (format == PIPE_FORMAT_RGTC1_UNORM || format == PIPE_FORMAT_RGTC2_UNORM) - HRESULT NineSurface9_ctor( struct NineSurface9 *This, struct NineUnknownParams *pParams, |