summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Stroyan <mike@LunarG.com>2010-01-10 23:16:39 +0000
committerJakob Bornecrantz <wallbraker@gmail.com>2010-01-10 23:30:28 +0000
commit720db891c308bf73d069d3ce4c9e8d1a0c80fd17 (patch)
tree6dee7c068fcc29a31fe618df8aa56fd6c4db2697
parentcc6ab3cd21b27c0fabd3b46bccf9b8ccd41cc885 (diff)
Make rbug compile with latest mesa sources
-rw-r--r--Makefile.in6
-rw-r--r--res/a.pngbin0 -> 100 bytes
-rw-r--r--res/abgr.pngbin0 -> 109 bytes
-rw-r--r--res/al.pngbin0 -> 198 bytes
-rw-r--r--res/bgra.pngbin0 -> 104 bytes
-rw-r--r--res/bgrx.pngbin0 -> 103 bytes
-rw-r--r--res/i.pngbin0 -> 270 bytes
-rw-r--r--res/l.pngbin0 -> 249 bytes
-rw-r--r--res/r.pngbin0 -> 99 bytes
-rw-r--r--res/rg.pngbin0 -> 104 bytes
-rw-r--r--res/s.pngbin0 -> 99 bytes
-rw-r--r--res/ycbcr.pngbin0 -> 223 bytes
-rw-r--r--res/ycbcr_rev.pngbin0 -> 229 bytes
-rw-r--r--res/z.pngbin0 -> 117 bytes
-rw-r--r--src/main.c18
-rw-r--r--src/texture.c165
16 files changed, 138 insertions, 51 deletions
diff --git a/Makefile.in b/Makefile.in
index 1d39e8b..6a41961 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -17,11 +17,7 @@ MESA_INCLUDES = \
-I$(MESA)src/gallium/drivers
MESA_LIBS = \
- $(MESA)src/gallium/auxiliary/rbug/librbug.a \
- $(MESA)src/gallium/auxiliary/tgsi/libtgsi.a \
- $(MESA)src/gallium/auxiliary/util/libutil.a
-
-
+ $(MESA)src/gallium/auxiliary/libgallium.a
TARGET := rbug-gui
ODIR := .obj
diff --git a/res/a.png b/res/a.png
new file mode 100644
index 0000000..82695d2
--- /dev/null
+++ b/res/a.png
Binary files differ
diff --git a/res/abgr.png b/res/abgr.png
new file mode 100644
index 0000000..026cfe4
--- /dev/null
+++ b/res/abgr.png
Binary files differ
diff --git a/res/al.png b/res/al.png
new file mode 100644
index 0000000..4cfc8f2
--- /dev/null
+++ b/res/al.png
Binary files differ
diff --git a/res/bgra.png b/res/bgra.png
new file mode 100644
index 0000000..d986d06
--- /dev/null
+++ b/res/bgra.png
Binary files differ
diff --git a/res/bgrx.png b/res/bgrx.png
new file mode 100644
index 0000000..561228d
--- /dev/null
+++ b/res/bgrx.png
Binary files differ
diff --git a/res/i.png b/res/i.png
new file mode 100644
index 0000000..741fbeb
--- /dev/null
+++ b/res/i.png
Binary files differ
diff --git a/res/l.png b/res/l.png
new file mode 100644
index 0000000..d1386e3
--- /dev/null
+++ b/res/l.png
Binary files differ
diff --git a/res/r.png b/res/r.png
new file mode 100644
index 0000000..0adcfae
--- /dev/null
+++ b/res/r.png
Binary files differ
diff --git a/res/rg.png b/res/rg.png
new file mode 100644
index 0000000..82bfc94
--- /dev/null
+++ b/res/rg.png
Binary files differ
diff --git a/res/s.png b/res/s.png
new file mode 100644
index 0000000..34f554f
--- /dev/null
+++ b/res/s.png
Binary files differ
diff --git a/res/ycbcr.png b/res/ycbcr.png
new file mode 100644
index 0000000..411ff39
--- /dev/null
+++ b/res/ycbcr.png
Binary files differ
diff --git a/res/ycbcr_rev.png b/res/ycbcr_rev.png
new file mode 100644
index 0000000..cccdfd6
--- /dev/null
+++ b/res/ycbcr_rev.png
Binary files differ
diff --git a/res/z.png b/res/z.png
new file mode 100644
index 0000000..0028044
--- /dev/null
+++ b/res/z.png
Binary files differ
diff --git a/src/main.c b/src/main.c
index 830b309..cf3474e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -285,13 +285,29 @@ static void icon_setup(struct program *p)
icon_add("res/z24x8.png", "z24x8", p);
icon_add("res/rgb.png", "rgb", p);
- icon_add("res/rgb.png", "bgr", p);
+ icon_add("res/bgr.png", "bgr", p);
icon_add("res/dxt1_rgb.png", "dxt1_rgb", p);
icon_add("res/dxt1_rgba.png", "dxt1_rgba", p);
icon_add("res/dxt3_rgba.png", "dxt3_rgba", p);
icon_add("res/dxt5_rgba.png", "dxt5_rgba", p);
+ icon_add("res/a.png", "a", p);
+ icon_add("res/i.png", "i", p);
+ icon_add("res/z.png", "z", p);
+ icon_add("res/s.png", "s", p);
+
+ icon_add("res/r.png", "r", p);
+ icon_add("res/rg.png", "rg", p);
+
+ icon_add("res/bgra.png", "bgra", p);
+ icon_add("res/bgrx.png", "bgrx", p);
+ icon_add("res/abgr.png", "abgr", p);
+ icon_add("res/xbgr.png", "xbgr", p);
+
+ icon_add("res/ycbcr.png", "ycbcr", p);
+ icon_add("res/ycbcr_rev.png", "ycbcr_rev", p);
+
icon_add("res/screen.png", "screen", p);
icon_add("res/shader_on_normal.png", "shader_on_normal", p);
diff --git a/src/texture.c b/src/texture.c
index a9ba987..3f10f4d 100644
--- a/src/texture.c
+++ b/src/texture.c
@@ -27,6 +27,7 @@
#include "GL/gl.h"
#include "pipe/p_format.h"
+#include "util/u_format.h"
/* needed for u_tile */
#include "pipe/p_state.h"
@@ -233,7 +234,6 @@ struct texture_action_read
unsigned stride;
unsigned size;
enum pipe_format format;
- struct pipe_format_block block;
void *data;
};
@@ -319,9 +319,9 @@ static void texture_action_read_upload(struct texture_action_read *action,
src_stride = action->stride;
- if (!pf_is_compressed(action->format)) {
+ if (!util_format_is_compressed(action->format)) {
uint32_t dst_stride = 4 * 4 * w;
- uint32_t step_h = action->block.height;
+ uint32_t step_h = util_format_description(action->format)->block.height;
float *rgba = g_malloc(dst_stride * h);
GLint format, type;
unsigned i;
@@ -342,7 +342,7 @@ static void texture_action_read_upload(struct texture_action_read *action,
format, type, rgba);
g_free(rgba);
- } else if (pf_is_compressed(action->format)) {
+ } else if (util_format_is_compressed(action->format)) {
if (action->format == PIPE_FORMAT_DXT1_RGB)
internal_format = GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
@@ -392,11 +392,11 @@ static gboolean texture_action_read_read(struct rbug_event *e,
if (!action->running)
goto error;
- if (pf_is_compressed(action->format)) {
+ if (util_format_is_compressed(action->format)) {
size = read->data_len;
} else {
/* calculate needed size */
- size = pf_get_nblocksy(&action->block, action->height) * read->stride;
+ size = util_format_get_nblocksx(action->format, action->height) * read->stride;
if (read->data_len < size)
goto error;
@@ -437,6 +437,7 @@ static gboolean texture_action_read_info(struct rbug_event *e,
char info_short_string[64];
char info_long_string[128];
GdkPixbuf *buf = NULL;
+ const struct util_format_description *format_description;
info = (struct rbug_proto_texture_info_reply *)header;
action = (struct texture_action_read *)e;
@@ -449,42 +450,119 @@ static gboolean texture_action_read_info(struct rbug_event *e,
goto error;
}
- if (pf_layout(info->format) == PIPE_FORMAT_LAYOUT_RGBAZS) {
- int swz = (info->format >> 2) & 0xFFF;
-
- if (!swz)
- ;
- else if (swz == _PIPE_FORMAT_RGBA)
- buf = icon_get("rgba", p);
- else if (swz == _PIPE_FORMAT_RGB1)
- buf = icon_get("rgbx", p);
- else if (swz == _PIPE_FORMAT_ARGB)
- buf = icon_get("argb", p);
- else if (swz == _PIPE_FORMAT_1RGB)
- buf = icon_get("xrgb", p);
- else if (swz == _PIPE_FORMAT_000R)
- buf = icon_get("rgba", p);
-
- else if (swz == _PIPE_FORMAT_SZ00)
- buf = icon_get("s8z24", p);
- else if (swz == _PIPE_FORMAT_0Z00)
- buf = icon_get("x8z24", p);
- else if (swz == _PIPE_FORMAT_ZS00)
- buf = icon_get("z24s8", p);
- else if (swz == _PIPE_FORMAT_Z000)
- buf = icon_get("z24x8", p);
-
- } else if (pf_layout(info->format) == PIPE_FORMAT_LAYOUT_DXT) {
-
- if (info->format == PIPE_FORMAT_DXT1_RGB)
- buf = icon_get("dxt1_rgb", p);
- else if (info->format == PIPE_FORMAT_DXT1_RGBA)
- buf = icon_get("dxt1_rgba", p);
- else if (info->format == PIPE_FORMAT_DXT3_RGBA)
- buf = icon_get("dxt3_rgba", p);
- else if (info->format == PIPE_FORMAT_DXT5_RGBA)
- buf = icon_get("dxt5_rgba", p);
-
+ format_description = util_format_description(info->format);
+
+ switch (info->format) {
+ case PIPE_FORMAT_NONE: break;
+ case PIPE_FORMAT_A8R8G8B8_UNORM: buf = icon_get("argb", p); break;
+ case PIPE_FORMAT_X8R8G8B8_UNORM: buf = icon_get("xrgb", p); break;
+ case PIPE_FORMAT_B8G8R8A8_UNORM: buf = icon_get("bgra", p); break;
+ case PIPE_FORMAT_B8G8R8X8_UNORM: buf = icon_get("bgrx", p); break;
+ case PIPE_FORMAT_A1R5G5B5_UNORM: buf = icon_get("argb", p); break;
+ case PIPE_FORMAT_A4R4G4B4_UNORM: buf = icon_get("argb", p); break;
+ case PIPE_FORMAT_R5G6B5_UNORM: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_A2B10G10R10_UNORM: buf = icon_get("abgr", p); break;
+ case PIPE_FORMAT_L8_UNORM: buf = icon_get("l", p); break;
+ case PIPE_FORMAT_A8_UNORM: buf = icon_get("a", p); break;
+ case PIPE_FORMAT_I8_UNORM: buf = icon_get("i", p); break;
+ case PIPE_FORMAT_A8L8_UNORM: buf = icon_get("al", p); break;
+ case PIPE_FORMAT_L16_UNORM: buf = icon_get("l", p); break;
+ case PIPE_FORMAT_YCBCR: buf = icon_get("ycbr", p); break;
+ case PIPE_FORMAT_YCBCR_REV: buf = icon_get("ycbr_rev", p); break;
+ case PIPE_FORMAT_Z16_UNORM: buf = icon_get("z", p); break;
+ case PIPE_FORMAT_Z32_UNORM: buf = icon_get("z", p); break;
+ case PIPE_FORMAT_Z32_FLOAT: buf = icon_get("z", p); break;
+ case PIPE_FORMAT_S8Z24_UNORM: buf = icon_get("s8z24", p); break;
+ case PIPE_FORMAT_Z24S8_UNORM: buf = icon_get("z24s8", p); break;
+ case PIPE_FORMAT_X8Z24_UNORM: buf = icon_get("x8z24", p); break;
+ case PIPE_FORMAT_Z24X8_UNORM: buf = icon_get("z24x8", p); break;
+ case PIPE_FORMAT_S8_UNORM: buf = icon_get("s", p); break;
+ case PIPE_FORMAT_R64_FLOAT: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R64G64_FLOAT: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R64G64B64_FLOAT: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R64G64B64A64_FLOAT: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R32_FLOAT: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R32G32_FLOAT: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R32G32B32_FLOAT: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R32G32B32A32_FLOAT: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R32_UNORM: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R32G32_UNORM: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R32G32B32_UNORM: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R32G32B32A32_UNORM: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R32_USCALED: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R32G32_USCALED: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R32G32B32_USCALED: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R32G32B32A32_USCALED: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R32_SNORM: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R32G32_SNORM: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R32G32B32_SNORM: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R32G32B32A32_SNORM: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R32_SSCALED: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R32G32_SSCALED: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R32G32B32_SSCALED: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R32G32B32A32_SSCALED: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R16_UNORM: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R16G16_UNORM: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R16G16B16_UNORM: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R16G16B16A16_UNORM: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R16_USCALED: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R16G16_USCALED: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R16G16B16_USCALED: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R16G16B16A16_USCALED: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R16_SNORM: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R16G16_SNORM: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R16G16B16_SNORM: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R16G16B16A16_SNORM: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R16_SSCALED: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R16G16_SSCALED: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R16G16B16_SSCALED: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R16G16B16A16_SSCALED: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R8_UNORM: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R8G8_UNORM: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R8G8B8_UNORM: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R8G8B8A8_UNORM: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R8G8B8X8_UNORM: buf = icon_get("rgbx", p); break;
+ case PIPE_FORMAT_R8_USCALED: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R8G8_USCALED: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R8G8B8_USCALED: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R8G8B8A8_USCALED: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R8G8B8X8_USCALED: buf = icon_get("rgbx", p); break;
+ case PIPE_FORMAT_R8_SNORM: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R8G8_SNORM: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R8G8B8_SNORM: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R8G8B8A8_SNORM: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R8G8B8X8_SNORM: buf = icon_get("rgbx", p); break;
+ case PIPE_FORMAT_B6G5R5_SNORM: buf = icon_get("bgr", p); break;
+ case PIPE_FORMAT_A8B8G8R8_SNORM: buf = icon_get("abgr", p); break;
+ case PIPE_FORMAT_X8B8G8R8_SNORM: buf = icon_get("xbgr", p); break;
+ case PIPE_FORMAT_R8_SSCALED: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R8G8_SSCALED: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R8G8B8_SSCALED: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R8G8B8A8_SSCALED: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R8G8B8X8_SSCALED: buf = icon_get("rgbx", p); break;
+ case PIPE_FORMAT_R32_FIXED: buf = icon_get("r", p); break;
+ case PIPE_FORMAT_R32G32_FIXED: buf = icon_get("rg", p); break;
+ case PIPE_FORMAT_R32G32B32_FIXED: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R32G32B32A32_FIXED: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_L8_SRGB: buf = icon_get("l", p); break;
+ case PIPE_FORMAT_A8L8_SRGB: buf = icon_get("al", p); break;
+ case PIPE_FORMAT_R8G8B8_SRGB: buf = icon_get("rgb", p); break;
+ case PIPE_FORMAT_R8G8B8A8_SRGB: buf = icon_get("rgba", p); break;
+ case PIPE_FORMAT_R8G8B8X8_SRGB: buf = icon_get("rgbx", p); break;
+ case PIPE_FORMAT_A8R8G8B8_SRGB: buf = icon_get("argb", p); break;
+ case PIPE_FORMAT_X8R8G8B8_SRGB: buf = icon_get("xrgb", p); break;
+ case PIPE_FORMAT_B8G8R8A8_SRGB: buf = icon_get("bgra", p); break;
+ case PIPE_FORMAT_B8G8R8X8_SRGB: buf = icon_get("bgrx", p); break;
+ case PIPE_FORMAT_X8UB8UG8SR8S_NORM: buf = icon_get("xbgr", p); break;
+ case PIPE_FORMAT_B6UG5SR5S_NORM: buf = icon_get("bgr", p); break;
+ case PIPE_FORMAT_DXT1_RGB: buf = icon_get("dxt1_rgb", p); break;
+ case PIPE_FORMAT_DXT1_RGBA: buf = icon_get("dxt1_rgba", p); break;
+ case PIPE_FORMAT_DXT3_RGBA: buf = icon_get("dxt3_rgba", p); break;
+ case PIPE_FORMAT_DXT5_RGBA: buf = icon_get("dxt5_rgba", p); break;
+ case PIPE_FORMAT_DXT1_SRGB: buf = icon_get("dxt1_rgb", p); break;
+ case PIPE_FORMAT_DXT1_SRGBA: buf = icon_get("dxt1_rgba", p); break;
+ case PIPE_FORMAT_DXT3_SRGBA: buf = icon_get("dxt3_rgba", p); break;
+ case PIPE_FORMAT_DXT5_SRGBA: buf = icon_get("dxt5_rgba", p); break;
}
snprintf(info_short_string, 64, "%ux%ux%u", info->width[0], info->height[0], info->depth[0]);
@@ -501,9 +579,6 @@ static gboolean texture_action_read_info(struct rbug_event *e,
action->width = info->width[0];
action->height = info->height[0];
- action->block.width = info->blockw;
- action->block.height = info->blockh;
- action->block.size = info->blocksize;
action->format = info->format;
rbug_send_texture_read(con, action->id,