From 76034aaf655134c71e1ec619085c46251d037720 Mon Sep 17 00:00:00 2001 From: Marek Olšák Date: Wed, 26 May 2010 23:47:27 +0200 Subject: r300g: decouple drawing code and two-sided stencil refvalue fallback It's now more separate from the rest of the driver and it can be disabled by commenting out just 1 line. Well, I couldn't make the previous version work with SW TCL reliably, that's the reason of this little rework. --- src/gallium/drivers/r300/r300_context.h | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) (limited to 'src/gallium/drivers/r300/r300_context.h') diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 97b69e7652..e047307e10 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -36,9 +36,9 @@ struct u_upload_mgr; struct r300_context; - struct r300_fragment_shader; struct r300_vertex_shader; +struct r300_stencilref_context; struct r300_atom { /* List pointers. */ @@ -86,7 +86,7 @@ struct r300_dsa_state { /* Whether a two-sided stencil is enabled. */ boolean two_sided; /* Whether a fallback should be used for a two-sided stencil ref value. */ - boolean stencil_ref_bf_fallback; + boolean two_sided_stencil_ref; }; struct r300_rs_state { @@ -331,21 +331,6 @@ struct r300_context { /* Parent class */ struct pipe_context context; - /* Emission of drawing packets. */ - void (*emit_draw_arrays_immediate)( - struct r300_context *r300, - unsigned mode, unsigned start, unsigned count); - - void (*emit_draw_arrays)( - struct r300_context *r300, - unsigned mode, unsigned count); - - void (*emit_draw_elements)( - struct r300_context *r300, struct pipe_resource* indexBuffer, - unsigned indexSize, unsigned minIndex, unsigned maxIndex, - unsigned mode, unsigned start, unsigned count); - - /* The interface to the windowing system, etc. */ struct r300_winsys_screen *rws; /* Screen. */ @@ -354,6 +339,8 @@ struct r300_context { struct draw_context* draw; /* Accelerated blit support. */ struct blitter_context* blitter; + /* Stencil two-sided reference value fallback. */ + struct r300_stencilref_context *stencilref_fallback; /* Vertex buffer for rendering. */ struct pipe_resource* vbo; @@ -441,9 +428,6 @@ struct r300_context { uint32_t zbuffer_bpp; /* Whether rendering is conditional and should be skipped. */ boolean skip_rendering; - /* Whether the two-sided stencil ref value is different for front and - * back faces, and fallback should be used for r3xx-r4xx. */ - boolean stencil_ref_bf_fallback; /* Point sprites texcoord index, 1 bit per texcoord */ int sprite_coord_enable; /* Whether two-sided color selection is enabled (AKA light_twoside). */ -- cgit v1.2.3