Merge branch 'gallium-0.1' into gallium-tex-surfaces
This commit is contained in:
commit
36e1bc865b
|
@ -49,6 +49,7 @@ void draw_pt_emit_prepare( struct pt_emit *emit,
|
||||||
const struct vertex_info *vinfo;
|
const struct vertex_info *vinfo;
|
||||||
unsigned dst_offset;
|
unsigned dst_offset;
|
||||||
struct translate_key hw_key;
|
struct translate_key hw_key;
|
||||||
|
unsigned keysize;
|
||||||
unsigned i;
|
unsigned i;
|
||||||
boolean ok;
|
boolean ok;
|
||||||
|
|
||||||
|
@ -58,12 +59,10 @@ void draw_pt_emit_prepare( struct pt_emit *emit,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&hw_key, 0, sizeof(hw_key));
|
|
||||||
|
|
||||||
/* Must do this after set_primitive() above:
|
/* Must do this after set_primitive() above:
|
||||||
*/
|
*/
|
||||||
vinfo = draw->render->get_vertex_info(draw->render);
|
vinfo = draw->render->get_vertex_info(draw->render);
|
||||||
|
keysize = 2*4 + vinfo->num_attribs * sizeof(hw_key.element[0]);
|
||||||
|
|
||||||
/* Translate from pipeline vertices to hw vertices.
|
/* Translate from pipeline vertices to hw vertices.
|
||||||
*/
|
*/
|
||||||
|
@ -122,8 +121,9 @@ void draw_pt_emit_prepare( struct pt_emit *emit,
|
||||||
hw_key.output_stride = vinfo->size * 4;
|
hw_key.output_stride = vinfo->size * 4;
|
||||||
|
|
||||||
if (!emit->translate ||
|
if (!emit->translate ||
|
||||||
memcmp(&emit->translate->key, &hw_key, sizeof(hw_key)) != 0)
|
memcmp(&emit->translate->key, &hw_key, keysize) != 0)
|
||||||
{
|
{
|
||||||
|
memset((char *)&hw_key + keysize, 0, sizeof(hw_key) - keysize);
|
||||||
emit->translate = translate_cache_find(emit->cache, &hw_key);
|
emit->translate = translate_cache_find(emit->cache, &hw_key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,10 +62,11 @@ void draw_pt_fetch_prepare( struct pt_fetch *fetch,
|
||||||
unsigned i, nr = 0;
|
unsigned i, nr = 0;
|
||||||
unsigned dst_offset = 0;
|
unsigned dst_offset = 0;
|
||||||
struct translate_key key;
|
struct translate_key key;
|
||||||
|
unsigned keysize;
|
||||||
|
|
||||||
fetch->vertex_size = vertex_size;
|
fetch->vertex_size = vertex_size;
|
||||||
|
keysize = (2*4 +
|
||||||
memset(&key, 0, sizeof(key));
|
(draw->pt.nr_vertex_elements + 1) * sizeof(key.element[0]));
|
||||||
|
|
||||||
/* Always emit/leave space for a vertex header.
|
/* Always emit/leave space for a vertex header.
|
||||||
*
|
*
|
||||||
|
@ -110,8 +111,9 @@ void draw_pt_fetch_prepare( struct pt_fetch *fetch,
|
||||||
|
|
||||||
|
|
||||||
if (!fetch->translate ||
|
if (!fetch->translate ||
|
||||||
memcmp(&fetch->translate->key, &key, sizeof(key)) != 0)
|
memcmp(&fetch->translate->key, &key, keysize) != 0)
|
||||||
{
|
{
|
||||||
|
memset((char *)&key + keysize, 0, sizeof(key) - keysize);
|
||||||
fetch->translate = translate_cache_find(fetch->cache, &key);
|
fetch->translate = translate_cache_find(fetch->cache, &key);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -47,10 +47,9 @@
|
||||||
struct translate_element
|
struct translate_element
|
||||||
{
|
{
|
||||||
enum pipe_format input_format;
|
enum pipe_format input_format;
|
||||||
unsigned input_buffer;
|
|
||||||
unsigned input_offset;
|
|
||||||
|
|
||||||
enum pipe_format output_format;
|
enum pipe_format output_format;
|
||||||
|
unsigned input_buffer;
|
||||||
|
unsigned input_offset; /* can't really reduce the size of these */
|
||||||
unsigned output_offset;
|
unsigned output_offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -717,7 +717,7 @@ void setup_tri( struct setup_context *setup,
|
||||||
const float (*v1)[4],
|
const float (*v1)[4],
|
||||||
const float (*v2)[4] )
|
const float (*v2)[4] )
|
||||||
{
|
{
|
||||||
float det = calc_det(v0, v1, v2);
|
float det;
|
||||||
|
|
||||||
#if DEBUG_VERTS
|
#if DEBUG_VERTS
|
||||||
debug_printf("Setup triangle:\n");
|
debug_printf("Setup triangle:\n");
|
||||||
|
@ -728,7 +728,8 @@ void setup_tri( struct setup_context *setup,
|
||||||
|
|
||||||
if (setup->softpipe->no_rast)
|
if (setup->softpipe->no_rast)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
det = calc_det(v0, v1, v2);
|
||||||
/*
|
/*
|
||||||
debug_printf("%s\n", __FUNCTION__ );
|
debug_printf("%s\n", __FUNCTION__ );
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1689,6 +1689,15 @@ static void
|
||||||
Fake_glXSwapBuffers( Display *dpy, GLXDrawable drawable )
|
Fake_glXSwapBuffers( Display *dpy, GLXDrawable drawable )
|
||||||
{
|
{
|
||||||
XMesaBuffer buffer = XMesaFindBuffer( dpy, drawable );
|
XMesaBuffer buffer = XMesaFindBuffer( dpy, drawable );
|
||||||
|
static boolean firsttime = 1, no_rast = 0;
|
||||||
|
|
||||||
|
if (firsttime) {
|
||||||
|
no_rast = getenv("SP_NO_RAST") != NULL;
|
||||||
|
firsttime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (no_rast)
|
||||||
|
return;
|
||||||
|
|
||||||
if (buffer) {
|
if (buffer) {
|
||||||
XMesaSwapBuffers(buffer);
|
XMesaSwapBuffers(buffer);
|
||||||
|
|
|
@ -110,6 +110,9 @@ int xmesa_check_for_xshm( XMesaDisplay *display )
|
||||||
int major, minor, ignore;
|
int major, minor, ignore;
|
||||||
Bool pixmaps;
|
Bool pixmaps;
|
||||||
|
|
||||||
|
if (getenv("SP_NO_RAST"))
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (getenv("MESA_NOSHM")) {
|
if (getenv("MESA_NOSHM")) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue