aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gallium/state_trackers/nine/nine_pipe.h21
-rw-r--r--src/gallium/state_trackers/nine/surface9.c2
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,