progs: remove rbug subdir
This commit is contained in:
12
progs/rbug/.gitignore
vendored
12
progs/rbug/.gitignore
vendored
@@ -1,12 +0,0 @@
|
|||||||
bin_to_bmp
|
|
||||||
simple_client
|
|
||||||
simple_server
|
|
||||||
shdr_info
|
|
||||||
shdr_dump
|
|
||||||
shdr_disable
|
|
||||||
ctx_info
|
|
||||||
ctx_rule
|
|
||||||
tex_dump
|
|
||||||
tex_info
|
|
||||||
*.bmp
|
|
||||||
*.bin
|
|
@@ -1,48 +0,0 @@
|
|||||||
# progs/rbug/Makefile
|
|
||||||
|
|
||||||
TOP = ../..
|
|
||||||
include $(TOP)/configs/current
|
|
||||||
|
|
||||||
INCLUDES = \
|
|
||||||
-I. \
|
|
||||||
-I$(TOP)/src/gallium/include \
|
|
||||||
-I$(TOP)/src/gallium/auxiliary \
|
|
||||||
-I$(TOP)/src/gallium/drivers \
|
|
||||||
$(PROG_INCLUDES)
|
|
||||||
|
|
||||||
LINKS = \
|
|
||||||
$(GALLIUM_AUXILIARIES) \
|
|
||||||
$(PROG_LINKS)
|
|
||||||
|
|
||||||
SOURCES = \
|
|
||||||
bin_to_bmp.c \
|
|
||||||
simple_client.c \
|
|
||||||
simple_server.c \
|
|
||||||
shdr_info.c \
|
|
||||||
shdr_dump.c \
|
|
||||||
shdr_disable.c \
|
|
||||||
ctx_info.c \
|
|
||||||
ctx_rule.c \
|
|
||||||
tex_info.c \
|
|
||||||
tex_dump.c
|
|
||||||
|
|
||||||
|
|
||||||
OBJECTS = $(SOURCES:.c=.o)
|
|
||||||
|
|
||||||
PROGS = $(OBJECTS:.o=)
|
|
||||||
|
|
||||||
##### TARGETS #####
|
|
||||||
|
|
||||||
default: $(OBJECTS) $(PROGS)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm -f $(PROGS)
|
|
||||||
-rm -f *.o
|
|
||||||
|
|
||||||
##### RULES #####
|
|
||||||
|
|
||||||
$(OBJECTS): %.o: %.c
|
|
||||||
$(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $(PROG_DEFINES) $< -o $@
|
|
||||||
|
|
||||||
$(PROGS): %: %.o
|
|
||||||
$(CC) $(LDFLAGS) $< $(LINKS) -lm -o $@
|
|
@@ -1,42 +0,0 @@
|
|||||||
REMOTE DEBUGGING CLI APPLICATIONS
|
|
||||||
|
|
||||||
|
|
||||||
= About =
|
|
||||||
|
|
||||||
This directory contains a Gallium3D remote debugging cli applications.
|
|
||||||
|
|
||||||
|
|
||||||
= Build Instructions =
|
|
||||||
|
|
||||||
To build, build a normal gallium build and from this directory do the following.
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
= Usage =
|
|
||||||
|
|
||||||
Make sure that you driver has trace integration, see
|
|
||||||
src/gallium/driver/rbug/README for more information about that. Then from on
|
|
||||||
the computer that you want to debug do:
|
|
||||||
|
|
||||||
export GALLIUM_RBUG=true
|
|
||||||
|
|
||||||
<launch app>
|
|
||||||
|
|
||||||
From the debugging computer launch apps form this directory. Currently ip
|
|
||||||
addresses are hardcoded and you need to edit the application, but that will
|
|
||||||
change in the future. For a more advanced gui application see:
|
|
||||||
|
|
||||||
http://cgit.freedesktop.org/mesa/rbug-gui
|
|
||||||
|
|
||||||
|
|
||||||
= Testing =
|
|
||||||
|
|
||||||
The two apps simple_client and simple_server. Are unit testing of the
|
|
||||||
connection and (de)marsheler. Just run the server first and then the client:
|
|
||||||
|
|
||||||
./simple_server &
|
|
||||||
./simple_client
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
Jakob Bornecrantz <jakob@vmware.com>
|
|
@@ -1,109 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "pipe/p_format.h"
|
|
||||||
#include "pipe/p_state.h"
|
|
||||||
#include "util/u_format.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_format.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
#include "util/u_string.h"
|
|
||||||
#include "util/u_tile.h"
|
|
||||||
|
|
||||||
static uint8_t* rbug_read(const char *filename, unsigned size);
|
|
||||||
static void dump(unsigned src_width, unsigned src_height,
|
|
||||||
unsigned src_stride, enum pipe_format src_format,
|
|
||||||
uint8_t *data, unsigned src_size);
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
/* change these */
|
|
||||||
unsigned width = 64;
|
|
||||||
unsigned height = 64;
|
|
||||||
unsigned stride = width * 4;
|
|
||||||
unsigned size = stride * height;
|
|
||||||
const char *filename = "mybin.bin";
|
|
||||||
enum pipe_format format = PIPE_FORMAT_B8G8R8A8_UNORM;
|
|
||||||
|
|
||||||
dump(width, height, stride, format, rbug_read(filename, size), size);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void dump(unsigned width, unsigned height,
|
|
||||||
unsigned src_stride, enum pipe_format src_format,
|
|
||||||
uint8_t *data, unsigned src_size)
|
|
||||||
{
|
|
||||||
enum pipe_format dst_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
|
|
||||||
unsigned dst_stride;
|
|
||||||
unsigned dst_size;
|
|
||||||
float *rgba;
|
|
||||||
int i;
|
|
||||||
char filename[512];
|
|
||||||
|
|
||||||
{
|
|
||||||
assert(src_stride >= util_format_get_stride(src_format, width));
|
|
||||||
}
|
|
||||||
{
|
|
||||||
dst_stride = util_format_get_stride(dst_format, width);
|
|
||||||
dst_size = util_format_get_2d_size(dst_format, dst_stride, width);
|
|
||||||
rgba = MALLOC(dst_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
util_snprintf(filename, 512, "%s.bmp", util_format_name(src_format));
|
|
||||||
|
|
||||||
if (util_format_is_compressed(src_format)) {
|
|
||||||
debug_printf("skipping: %s\n", filename);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
debug_printf("saving: %s\n", filename);
|
|
||||||
|
|
||||||
for (i = 0; i < height; i++) {
|
|
||||||
pipe_tile_raw_to_rgba(src_format, data + src_stride * i,
|
|
||||||
width, 1,
|
|
||||||
&rgba[width*4*i], dst_stride);
|
|
||||||
}
|
|
||||||
|
|
||||||
debug_dump_float_rgba_bmp(filename, width, height, rgba, width);
|
|
||||||
|
|
||||||
FREE(rgba);
|
|
||||||
}
|
|
||||||
|
|
||||||
static uint8_t* rbug_read(const char *filename, unsigned size)
|
|
||||||
{
|
|
||||||
uint8_t *data;
|
|
||||||
FILE *file = fopen(filename, "rb");
|
|
||||||
|
|
||||||
data = MALLOC(size);
|
|
||||||
|
|
||||||
fread(data, 1, size, file);
|
|
||||||
fclose(file);
|
|
||||||
|
|
||||||
return data;
|
|
||||||
}
|
|
@@ -1,80 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "pipe/p_format.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
static void talk()
|
|
||||||
{
|
|
||||||
int c = u_socket_connect("localhost", 13370);
|
|
||||||
struct rbug_connection *con = rbug_from_socket(c);
|
|
||||||
struct rbug_header *header;
|
|
||||||
struct rbug_proto_context_list_reply *list;
|
|
||||||
struct rbug_proto_context_info_reply *info;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
debug_printf("Sending get contexts\n");
|
|
||||||
rbug_send_context_list(con, NULL);
|
|
||||||
|
|
||||||
debug_printf("Waiting for contexts\n");
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_CONTEXT_LIST_REPLY);
|
|
||||||
list = (struct rbug_proto_context_list_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("Got contexts:\n");
|
|
||||||
for (i = 0; i < list->contexts_len; i++) {
|
|
||||||
#if 0
|
|
||||||
rbug_send_contexts_info(con, list->contexts[i], NULL);
|
|
||||||
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_CONTEXT_INFO_REPLY);
|
|
||||||
info = (struct rbug_proto_context_info_reply *)header;
|
|
||||||
#else
|
|
||||||
(void)info;
|
|
||||||
header = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
debug_printf("%llu\n",
|
|
||||||
(unsigned long long)list->contexts[i]);
|
|
||||||
rbug_free_header(header);
|
|
||||||
}
|
|
||||||
|
|
||||||
rbug_free_header(&list->header);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
talk();
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,88 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "pipe/p_format.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
static void talk(rbug_context_t ctx, rbug_shader_t shdr)
|
|
||||||
{
|
|
||||||
int c = u_socket_connect("localhost", 13370);
|
|
||||||
struct rbug_connection *con;
|
|
||||||
struct rbug_header *header;
|
|
||||||
|
|
||||||
if (c < 0)
|
|
||||||
c = u_socket_connect("localhost", 13370);
|
|
||||||
|
|
||||||
con = rbug_from_socket(c);
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
rbug_send_context_draw_rule(con, ctx, 0, shdr, 0, 0, RBUG_BLOCK_AFTER, NULL);
|
|
||||||
|
|
||||||
rbug_send_ping(con, NULL);
|
|
||||||
|
|
||||||
debug_printf("Sent waiting for reply\n");
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
|
|
||||||
if (header->opcode != RBUG_OP_PING_REPLY)
|
|
||||||
debug_printf("Error\n");
|
|
||||||
else
|
|
||||||
debug_printf("Ok!\n");
|
|
||||||
|
|
||||||
rbug_free_header(header);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void print_usage()
|
|
||||||
{
|
|
||||||
printf("Usage ctx_rule <context> <fragment>\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
long ctx;
|
|
||||||
long shdr;
|
|
||||||
|
|
||||||
if (argc < 3)
|
|
||||||
print_usage();
|
|
||||||
|
|
||||||
ctx = atol(argv[1]);
|
|
||||||
shdr = atol(argv[2]);
|
|
||||||
|
|
||||||
if (ctx <= 0 && ctx <= 0)
|
|
||||||
print_usage();
|
|
||||||
|
|
||||||
talk((uint64_t)ctx, (uint64_t)shdr);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,84 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "pipe/p_format.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
static void talk(rbug_context_t ctx, rbug_shader_t shdr)
|
|
||||||
{
|
|
||||||
int c = u_socket_connect("localhost", 13370);
|
|
||||||
struct rbug_connection *con = rbug_from_socket(c);
|
|
||||||
struct rbug_header *header;
|
|
||||||
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
rbug_send_shader_disable(con, ctx, shdr, true, NULL);
|
|
||||||
|
|
||||||
rbug_send_ping(con, NULL);
|
|
||||||
|
|
||||||
debug_printf("Sent waiting for reply\n");
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
|
|
||||||
if (header->opcode != RBUG_OP_PING_REPLY)
|
|
||||||
debug_printf("Error\n");
|
|
||||||
else
|
|
||||||
debug_printf("Ok!\n");
|
|
||||||
|
|
||||||
rbug_free_header(header);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void print_usage()
|
|
||||||
{
|
|
||||||
printf("Usage shdr_disable <context> <shader>\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
long ctx;
|
|
||||||
long shdr;
|
|
||||||
|
|
||||||
if (argc < 3)
|
|
||||||
print_usage();
|
|
||||||
|
|
||||||
ctx = atol(argv[1]);
|
|
||||||
shdr = atol(argv[2]);
|
|
||||||
|
|
||||||
if (ctx <= 0 && ctx <= 0)
|
|
||||||
print_usage();
|
|
||||||
|
|
||||||
talk((uint64_t)ctx, (uint64_t)shdr);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,115 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "pipe/p_format.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
#include "tgsi/tgsi_dump.h"
|
|
||||||
|
|
||||||
static void shader_info(struct rbug_connection *con, rbug_context_t ctx)
|
|
||||||
{
|
|
||||||
struct rbug_header *header;
|
|
||||||
struct rbug_proto_shader_list_reply *list;
|
|
||||||
struct rbug_proto_shader_info_reply *info;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
debug_printf("Sending get shaders to %llu\n", (unsigned long long)ctx);
|
|
||||||
rbug_send_shader_list(con, ctx, NULL);
|
|
||||||
|
|
||||||
debug_printf("Waiting for shaders from %llu\n", (unsigned long long)ctx);
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_SHADER_LIST_REPLY);
|
|
||||||
list = (struct rbug_proto_shader_list_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("Got shaders:\n");
|
|
||||||
for (i = 0; i < list->shaders_len; i++) {
|
|
||||||
rbug_send_shader_info(con, ctx, list->shaders[i], NULL);
|
|
||||||
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_SHADER_INFO_REPLY);
|
|
||||||
info = (struct rbug_proto_shader_info_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("#####################################################\n");
|
|
||||||
debug_printf("ctx: %llu shdr: %llu disabled %u\n",
|
|
||||||
(unsigned long long)ctx,
|
|
||||||
(unsigned long long)list->shaders[i],
|
|
||||||
info->disabled);
|
|
||||||
|
|
||||||
/* just to be sure */
|
|
||||||
assert(sizeof(struct tgsi_token) == 4);
|
|
||||||
|
|
||||||
debug_printf("-----------------------------------------------------\n");
|
|
||||||
tgsi_dump((struct tgsi_token *)info->original, 0);
|
|
||||||
|
|
||||||
if (info->replaced_len > 0) {
|
|
||||||
debug_printf("-----------------------------------------------------\n");
|
|
||||||
tgsi_dump((struct tgsi_token *)info->replaced, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
rbug_free_header(header);
|
|
||||||
}
|
|
||||||
|
|
||||||
debug_printf("#####################################################\n");
|
|
||||||
rbug_free_header(&list->header);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void talk()
|
|
||||||
{
|
|
||||||
int c = u_socket_connect("localhost", 13370);
|
|
||||||
struct rbug_connection *con = rbug_from_socket(c);
|
|
||||||
struct rbug_header *header;
|
|
||||||
struct rbug_proto_context_list_reply *list;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
debug_printf("Sending get contexts\n");
|
|
||||||
rbug_send_context_list(con, NULL);
|
|
||||||
|
|
||||||
debug_printf("Waiting for contexts\n");
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_CONTEXT_LIST_REPLY);
|
|
||||||
list = (struct rbug_proto_context_list_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("Got contexts:\n");
|
|
||||||
for (i = 0; i < list->contexts_len; i++) {
|
|
||||||
shader_info(con, list->contexts[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
rbug_free_header(&list->header);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
talk();
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,98 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "pipe/p_format.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
static void shader_info(struct rbug_connection *con, rbug_context_t ctx)
|
|
||||||
{
|
|
||||||
struct rbug_header *header;
|
|
||||||
struct rbug_proto_shader_list_reply *list;
|
|
||||||
struct rbug_proto_shader_info_reply *info;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
rbug_send_shader_list(con, ctx, NULL);
|
|
||||||
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_SHADER_LIST_REPLY);
|
|
||||||
list = (struct rbug_proto_shader_list_reply *)header;
|
|
||||||
|
|
||||||
debug_printf(" context | shader | disabled |\n");
|
|
||||||
for (i = 0; i < list->shaders_len; i++) {
|
|
||||||
rbug_send_shader_info(con, ctx, list->shaders[i], NULL);
|
|
||||||
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_SHADER_INFO_REPLY);
|
|
||||||
info = (struct rbug_proto_shader_info_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("%15llu | %15llu | %15u |\n",
|
|
||||||
(unsigned long long)ctx,
|
|
||||||
(unsigned long long)list->shaders[i],
|
|
||||||
(unsigned)info->disabled);
|
|
||||||
|
|
||||||
rbug_free_header(header);
|
|
||||||
}
|
|
||||||
|
|
||||||
rbug_free_header(&list->header);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void talk()
|
|
||||||
{
|
|
||||||
int c = u_socket_connect("localhost", 13370);
|
|
||||||
struct rbug_connection *con = rbug_from_socket(c);
|
|
||||||
struct rbug_header *header;
|
|
||||||
struct rbug_proto_context_list_reply *list;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
debug_printf("Sending get contexts\n");
|
|
||||||
rbug_send_context_list(con, NULL);
|
|
||||||
|
|
||||||
debug_printf("Waiting for contexts\n");
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_CONTEXT_LIST_REPLY);
|
|
||||||
list = (struct rbug_proto_context_list_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("Got contexts:\n");
|
|
||||||
for (i = 0; i < list->contexts_len; i++) {
|
|
||||||
shader_info(con, list->contexts[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
rbug_free_header(&list->header);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
talk();
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
static void talk()
|
|
||||||
{
|
|
||||||
int c = u_socket_connect("localhost", 13370);
|
|
||||||
struct rbug_connection *con = rbug_from_socket(c);
|
|
||||||
struct rbug_header *header;
|
|
||||||
struct rbug_proto_texture_list_reply *list;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
debug_printf("Sending get textures\n");
|
|
||||||
rbug_send_texture_list(con, NULL);
|
|
||||||
|
|
||||||
debug_printf("Waiting for textures\n");
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_TEXTURE_LIST_REPLY);
|
|
||||||
list = (struct rbug_proto_texture_list_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("Got textures:\n");
|
|
||||||
for (i = 0; i < list->textures_len; i++)
|
|
||||||
debug_printf("\ttex %llu\n", (unsigned long long)list->textures[i]);
|
|
||||||
|
|
||||||
rbug_free_header(header);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
talk();
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
static void rbug_wait()
|
|
||||||
{
|
|
||||||
int s = u_socket_listen_on_port(13370);
|
|
||||||
int c = u_socket_accept(s);
|
|
||||||
struct rbug_connection *con = rbug_from_socket(c);
|
|
||||||
struct rbug_header *header;
|
|
||||||
rbug_texture_t texs[2];
|
|
||||||
uint32_t serial;
|
|
||||||
texs[0] = 1337;
|
|
||||||
texs[1] = 7331;
|
|
||||||
|
|
||||||
assert(s >= 0);
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
debug_printf("Waiting for get textures\n");
|
|
||||||
header = rbug_get_message(con, &serial);
|
|
||||||
assert(header);
|
|
||||||
assert(header->opcode == RBUG_OP_TEXTURE_LIST);
|
|
||||||
rbug_free_header(header);
|
|
||||||
|
|
||||||
rbug_send_texture_list_reply(con, serial, texs, 2, NULL);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
rbug_wait();
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,129 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "pipe/p_format.h"
|
|
||||||
#include "pipe/p_state.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_format.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
#include "util/u_string.h"
|
|
||||||
#include "util/u_tile.h"
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
static void dump(rbug_texture_t tex,
|
|
||||||
struct rbug_proto_texture_info_reply *info,
|
|
||||||
struct rbug_proto_texture_read_reply *read,
|
|
||||||
int mip)
|
|
||||||
{
|
|
||||||
enum pipe_format format = info->format;
|
|
||||||
uint8_t *data = read->data;
|
|
||||||
unsigned width = info->width[mip];
|
|
||||||
unsigned height = info->height[mip];
|
|
||||||
unsigned dst_stride = width * 4 * 4;
|
|
||||||
unsigned src_stride = read->stride;
|
|
||||||
float *rgba = MALLOC(dst_stride * height);
|
|
||||||
int i;
|
|
||||||
char filename[512];
|
|
||||||
|
|
||||||
util_snprintf(filename, 512, "%llu_%s_%u.bmp",
|
|
||||||
(unsigned long long)tex, util_format_name(info->format), mip);
|
|
||||||
|
|
||||||
if (util_format_is_compressed(info->format)) {
|
|
||||||
debug_printf("skipping: %s\n", filename);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
debug_printf("saving: %s\n", filename);
|
|
||||||
|
|
||||||
for (i = 0; i < height; i++) {
|
|
||||||
pipe_tile_raw_to_rgba(format, data + src_stride * i,
|
|
||||||
width, 1,
|
|
||||||
&rgba[width*4*i], dst_stride);
|
|
||||||
}
|
|
||||||
|
|
||||||
debug_dump_float_rgba_bmp(filename, width, height, rgba, width);
|
|
||||||
|
|
||||||
FREE(rgba);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void talk()
|
|
||||||
{
|
|
||||||
int c = u_socket_connect("localhost", 13370);
|
|
||||||
struct rbug_connection *con = rbug_from_socket(c);
|
|
||||||
struct rbug_header *header;
|
|
||||||
struct rbug_header *header2;
|
|
||||||
struct rbug_proto_texture_list_reply *list;
|
|
||||||
struct rbug_proto_texture_info_reply *info;
|
|
||||||
struct rbug_proto_texture_read_reply *read;
|
|
||||||
int i, j;
|
|
||||||
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
debug_printf("Sending get textures\n");
|
|
||||||
rbug_send_texture_list(con, NULL);
|
|
||||||
|
|
||||||
debug_printf("Waiting for textures\n");
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_TEXTURE_LIST_REPLY);
|
|
||||||
list = (struct rbug_proto_texture_list_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("Got textures:\n");
|
|
||||||
for (i = 0; i < list->textures_len; i++) {
|
|
||||||
rbug_send_texture_info(con, list->textures[i], NULL);
|
|
||||||
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_TEXTURE_INFO_REPLY);
|
|
||||||
info = (struct rbug_proto_texture_info_reply *)header;
|
|
||||||
|
|
||||||
for (j = 0; j <= info->last_level; j++) {
|
|
||||||
rbug_send_texture_read(con, list->textures[i],
|
|
||||||
0, j, 0,
|
|
||||||
0, 0, info->width[j], info->height[j],
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
header2 = rbug_get_message(con, NULL);
|
|
||||||
assert(header2->opcode == RBUG_OP_TEXTURE_READ_REPLY);
|
|
||||||
read = (struct rbug_proto_texture_read_reply *)header2;
|
|
||||||
|
|
||||||
dump(list->textures[i], info, read, j);
|
|
||||||
|
|
||||||
rbug_free_header(header2);
|
|
||||||
}
|
|
||||||
|
|
||||||
rbug_free_header(header);
|
|
||||||
|
|
||||||
}
|
|
||||||
rbug_free_header(&list->header);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
talk();
|
|
||||||
return 0;
|
|
||||||
}
|
|
@@ -1,79 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2009 VMware, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
|
||||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
|
||||||
* the Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pipe/p_compiler.h"
|
|
||||||
#include "pipe/p_format.h"
|
|
||||||
#include "util/u_format.h"
|
|
||||||
#include "util/u_memory.h"
|
|
||||||
#include "util/u_debug.h"
|
|
||||||
#include "util/u_network.h"
|
|
||||||
|
|
||||||
#include "rbug/rbug.h"
|
|
||||||
|
|
||||||
static void talk()
|
|
||||||
{
|
|
||||||
int c = u_socket_connect("localhost", 13370);
|
|
||||||
struct rbug_connection *con = rbug_from_socket(c);
|
|
||||||
struct rbug_header *header;
|
|
||||||
struct rbug_proto_texture_list_reply *list;
|
|
||||||
struct rbug_proto_texture_info_reply *info;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
assert(c >= 0);
|
|
||||||
assert(con);
|
|
||||||
debug_printf("Connection get!\n");
|
|
||||||
|
|
||||||
debug_printf("Sending get textures\n");
|
|
||||||
rbug_send_texture_list(con, NULL);
|
|
||||||
|
|
||||||
debug_printf("Waiting for textures\n");
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_TEXTURE_LIST_REPLY);
|
|
||||||
list = (struct rbug_proto_texture_list_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("Got textures:\n");
|
|
||||||
for (i = 0; i < list->textures_len; i++) {
|
|
||||||
rbug_send_texture_info(con, list->textures[i], NULL);
|
|
||||||
|
|
||||||
header = rbug_get_message(con, NULL);
|
|
||||||
assert(header->opcode == RBUG_OP_TEXTURE_INFO_REPLY);
|
|
||||||
info = (struct rbug_proto_texture_info_reply *)header;
|
|
||||||
|
|
||||||
debug_printf("%llu %s %u x %u x %u, block(%ux%u %u), last_level: %u, nr_samples: %u, usage: %u\n",
|
|
||||||
(unsigned long long)list->textures[i], util_format_name(info->format),
|
|
||||||
info->width[0], info->height[0], info->depth[0],
|
|
||||||
info->blockw, info->blockh, info->blocksize,
|
|
||||||
info->last_level, info->nr_samples, info->tex_usage);
|
|
||||||
rbug_free_header(header);
|
|
||||||
}
|
|
||||||
|
|
||||||
rbug_free_header(&list->header);
|
|
||||||
rbug_disconnect(con);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
talk();
|
|
||||||
return 0;
|
|
||||||
}
|
|
Reference in New Issue
Block a user