Go to the source code of this file.
Defines | |
#define | DUP(TYPE, VAL) |
Functions | |
static void * | brw_create_blend_state (struct pipe_context *pipe, const struct pipe_blend_state *blend) |
static void | brw_bind_blend_state (struct pipe_context *pipe, void *blend) |
static void | brw_delete_blend_state (struct pipe_context *pipe, void *blend) |
static void | brw_set_blend_color (struct pipe_context *pipe, const struct pipe_blend_color *blend_color) |
static void * | brw_create_sampler_state (struct pipe_context *pipe, const struct pipe_sampler_state *sampler) |
static void | brw_bind_sampler_states (struct pipe_context *pipe, unsigned num, void **sampler) |
static void | brw_delete_sampler_state (struct pipe_context *pipe, void *sampler) |
static void * | brw_create_depth_stencil_state (struct pipe_context *pipe, const struct pipe_depth_stencil_alpha_state *depth_stencil) |
static void | brw_bind_depth_stencil_state (struct pipe_context *pipe, void *depth_stencil) |
static void | brw_delete_depth_stencil_state (struct pipe_context *pipe, void *depth_stencil) |
static void | brw_set_scissor_state (struct pipe_context *pipe, const struct pipe_scissor_state *scissor) |
static void | brw_set_polygon_stipple (struct pipe_context *pipe, const struct pipe_poly_stipple *stipple) |
static void * | brw_create_fs_state (struct pipe_context *pipe, const struct pipe_shader_state *shader) |
static void | brw_bind_fs_state (struct pipe_context *pipe, void *shader) |
static void | brw_delete_fs_state (struct pipe_context *pipe, void *shader) |
static void * | brw_create_vs_state (struct pipe_context *pipe, const struct pipe_shader_state *shader) |
static void | brw_bind_vs_state (struct pipe_context *pipe, void *vs) |
static void | brw_delete_vs_state (struct pipe_context *pipe, void *shader) |
static void | brw_set_clip_state (struct pipe_context *pipe, const struct pipe_clip_state *clip) |
static void | brw_set_viewport_state (struct pipe_context *pipe, const struct pipe_viewport_state *viewport) |
static void | brw_set_vertex_buffers (struct pipe_context *pipe, unsigned count, const struct pipe_vertex_buffer *buffers) |
static void | brw_set_vertex_elements (struct pipe_context *pipe, unsigned count, const struct pipe_vertex_element *elements) |
static void | brw_set_constant_buffer (struct pipe_context *pipe, uint shader, uint index, const struct pipe_constant_buffer *buf) |
static void | brw_set_sampler_textures (struct pipe_context *pipe, unsigned num, struct pipe_texture **texture) |
static void | brw_set_framebuffer_state (struct pipe_context *pipe, const struct pipe_framebuffer_state *fb) |
static void * | brw_create_rasterizer_state (struct pipe_context *pipe, const struct pipe_rasterizer_state *rasterizer) |
static void | brw_bind_rasterizer_state (struct pipe_context *pipe, void *setup) |
static void | brw_delete_rasterizer_state (struct pipe_context *pipe, void *setup) |
void | brw_init_state_functions (struct brw_context *brw) |
#define DUP | ( | TYPE, | |||
VAL | ) |
Value:
do { \ struct TYPE *x = malloc(sizeof(*x)); \ memcpy(x, VAL, sizeof(*x) ); \ return x; \ } while (0)
Definition at line 46 of file brw_state.c.
static void brw_bind_blend_state | ( | struct pipe_context * | pipe, | |
void * | blend | |||
) | [static] |
Definition at line 63 of file brw_state.c.
References brw_context::attribs, brw_context::Blend, brw_state_flags::brw, brw_context(), BRW_NEW_BLEND, brw_context::dirty, and brw_context::state.
00065 { 00066 struct brw_context *brw = brw_context(pipe); 00067 00068 brw->attribs.Blend = (struct pipe_blend_state*)blend; 00069 brw->state.dirty.brw |= BRW_NEW_BLEND; 00070 }
static void brw_bind_depth_stencil_state | ( | struct pipe_context * | pipe, | |
void * | depth_stencil | |||
) | [static] |
Definition at line 138 of file brw_state.c.
References brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_DEPTH_STENCIL, brw_context::DepthStencil, brw_context::dirty, and brw_context::state.
00140 { 00141 struct brw_context *brw = brw_context(pipe); 00142 00143 brw->attribs.DepthStencil = (const struct pipe_depth_stencil_alpha_state *)depth_stencil; 00144 00145 brw->state.dirty.brw |= BRW_NEW_DEPTH_STENCIL; 00146 }
static void brw_bind_fs_state | ( | struct pipe_context * | pipe, | |
void * | shader | |||
) | [static] |
Definition at line 202 of file brw_state.c.
References brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_FS, brw_context::dirty, brw_context::FragmentProgram, and brw_context::state.
00203 { 00204 struct brw_context *brw = brw_context(pipe); 00205 00206 brw->attribs.FragmentProgram = (struct brw_fragment_program *)shader; 00207 brw->state.dirty.brw |= BRW_NEW_FS; 00208 }
static void brw_bind_rasterizer_state | ( | struct pipe_context * | pipe, | |
void * | setup | |||
) | [static] |
Definition at line 408 of file brw_state.c.
References brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_RASTERIZER, brw_context::dirty, brw_context::Raster, and brw_context::state.
00410 { 00411 struct brw_context *brw = brw_context(pipe); 00412 00413 brw->attribs.Raster = (struct pipe_rasterizer_state *)setup; 00414 00415 /* Also pass-through to draw module: 00416 */ 00417 //draw_set_rasterizer_state(brw->draw, setup); 00418 00419 brw->state.dirty.brw |= BRW_NEW_RASTERIZER; 00420 }
static void brw_bind_sampler_states | ( | struct pipe_context * | pipe, | |
unsigned | num, | |||
void ** | sampler | |||
) | [static] |
Definition at line 99 of file brw_state.c.
References assert, brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_SAMPLER, brw_context::dirty, brw_context::num_samplers, PIPE_MAX_SAMPLERS, brw_context::Samplers, and brw_context::state.
00101 { 00102 struct brw_context *brw = brw_context(pipe); 00103 00104 assert(num <= PIPE_MAX_SAMPLERS); 00105 00106 /* Check for no-op */ 00107 if (num == brw->num_samplers && 00108 !memcmp(brw->attribs.Samplers, sampler, num * sizeof(void *))) 00109 return; 00110 00111 memcpy(brw->attribs.Samplers, sampler, num * sizeof(void *)); 00112 memset(&brw->attribs.Samplers[num], 0, (PIPE_MAX_SAMPLERS - num) * 00113 sizeof(void *)); 00114 00115 brw->num_samplers = num; 00116 00117 brw->state.dirty.brw |= BRW_NEW_SAMPLER; 00118 }
static void brw_bind_vs_state | ( | struct pipe_context * | pipe, | |
void * | vs | |||
) | [static] |
Definition at line 242 of file brw_state.c.
References brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_VS, debug_printf(), brw_context::dirty, brw_context::state, and brw_context::VertexProgram.
00243 { 00244 struct brw_context *brw = brw_context(pipe); 00245 00246 brw->attribs.VertexProgram = (struct brw_vertex_program *)vs; 00247 brw->state.dirty.brw |= BRW_NEW_VS; 00248 00249 debug_printf("YYYYYYYYYYYYY BINDING VERTEX SHADER\n"); 00250 }
static void* brw_create_blend_state | ( | struct pipe_context * | pipe, | |
const struct pipe_blend_state * | blend | |||
) | [static] |
Definition at line 57 of file brw_state.c.
References DUP.
00059 { 00060 DUP( pipe_blend_state, blend ); 00061 }
static void* brw_create_depth_stencil_state | ( | struct pipe_context * | pipe, | |
const struct pipe_depth_stencil_alpha_state * | depth_stencil | |||
) | [static] |
Definition at line 132 of file brw_state.c.
References DUP.
00134 { 00135 DUP( pipe_depth_stencil_alpha_state, depth_stencil ); 00136 }
static void* brw_create_fs_state | ( | struct pipe_context * | pipe, | |
const struct pipe_shader_state * | shader | |||
) | [static] |
Definition at line 181 of file brw_state.c.
References brw_context(), brw_shader_info(), CALLOC_STRUCT, brw_fragment_program::id, brw_fragment_program::info, brw_fragment_program::program, brw_context::program_id, tgsi_dump(), tgsi_dup_tokens(), tgsi_scan_shader(), and pipe_shader_state::tokens.
00183 { 00184 struct brw_fragment_program *brw_fp = CALLOC_STRUCT(brw_fragment_program); 00185 00186 brw_fp->program.tokens = tgsi_dup_tokens(shader->tokens); 00187 brw_fp->id = brw_context(pipe)->program_id++; 00188 00189 tgsi_scan_shader(shader->tokens, &brw_fp->info); 00190 00191 #if 0 00192 brw_shader_info(shader->tokens, 00193 &brw_fp->info2); 00194 #endif 00195 00196 tgsi_dump(shader->tokens, 0); 00197 00198 00199 return (void *)brw_fp; 00200 }
static void* brw_create_rasterizer_state | ( | struct pipe_context * | pipe, | |
const struct pipe_rasterizer_state * | rasterizer | |||
) | [static] |
Definition at line 402 of file brw_state.c.
References DUP.
00404 { 00405 DUP(pipe_rasterizer_state, rasterizer); 00406 }
static void* brw_create_sampler_state | ( | struct pipe_context * | pipe, | |
const struct pipe_sampler_state * | sampler | |||
) | [static] |
Definition at line 93 of file brw_state.c.
References DUP.
00095 { 00096 DUP( pipe_sampler_state, sampler ); 00097 }
static void* brw_create_vs_state | ( | struct pipe_context * | pipe, | |
const struct pipe_shader_state * | shader | |||
) | [static] |
Definition at line 223 of file brw_state.c.
References brw_context(), brw_shader_info(), CALLOC_STRUCT, brw_vertex_program::id, brw_vertex_program::info, brw_vertex_program::program, brw_context::program_id, tgsi_dump(), tgsi_dup_tokens(), tgsi_scan_shader(), and pipe_shader_state::tokens.
00225 { 00226 struct brw_vertex_program *brw_vp = CALLOC_STRUCT(brw_vertex_program); 00227 00228 brw_vp->program.tokens = tgsi_dup_tokens(shader->tokens); 00229 brw_vp->id = brw_context(pipe)->program_id++; 00230 00231 tgsi_scan_shader(shader->tokens, &brw_vp->info); 00232 00233 #if 0 00234 brw_shader_info(shader->tokens, 00235 &brw_vp->info2); 00236 #endif 00237 tgsi_dump(shader->tokens, 0); 00238 00239 return (void *)brw_vp; 00240 }
static void brw_delete_blend_state | ( | struct pipe_context * | pipe, | |
void * | blend | |||
) | [static] |
static void brw_delete_depth_stencil_state | ( | struct pipe_context * | pipe, | |
void * | depth_stencil | |||
) | [static] |
static void brw_delete_fs_state | ( | struct pipe_context * | pipe, | |
void * | shader | |||
) | [static] |
Definition at line 210 of file brw_state.c.
References FREE, brw_fragment_program::program, and pipe_shader_state::tokens.
00211 { 00212 struct brw_fragment_program *brw_fp = (struct brw_fragment_program *) shader; 00213 00214 FREE((void *) brw_fp->program.tokens); 00215 FREE(brw_fp); 00216 }
static void brw_delete_rasterizer_state | ( | struct pipe_context * | pipe, | |
void * | setup | |||
) | [static] |
static void brw_delete_sampler_state | ( | struct pipe_context * | pipe, | |
void * | sampler | |||
) | [static] |
static void brw_delete_vs_state | ( | struct pipe_context * | pipe, | |
void * | shader | |||
) | [static] |
Definition at line 252 of file brw_state.c.
References FREE, brw_vertex_program::program, and pipe_shader_state::tokens.
00253 { 00254 struct brw_vertex_program *brw_vp = (struct brw_vertex_program *) shader; 00255 00256 FREE((void *) brw_vp->program.tokens); 00257 FREE(brw_vp); 00258 }
void brw_init_state_functions | ( | struct brw_context * | brw | ) |
Definition at line 431 of file brw_state.c.
References pipe_context::bind_blend_state, pipe_context::bind_depth_stencil_alpha_state, pipe_context::bind_fs_state, pipe_context::bind_rasterizer_state, pipe_context::bind_sampler_states, pipe_context::bind_vs_state, brw_bind_blend_state(), brw_bind_depth_stencil_state(), brw_bind_fs_state(), brw_bind_rasterizer_state(), brw_bind_sampler_states(), brw_bind_vs_state(), brw_create_blend_state(), brw_create_depth_stencil_state(), brw_create_fs_state(), brw_create_rasterizer_state(), brw_create_sampler_state(), brw_create_vs_state(), brw_delete_blend_state(), brw_delete_depth_stencil_state(), brw_delete_fs_state(), brw_delete_rasterizer_state(), brw_delete_sampler_state(), brw_delete_vs_state(), brw_set_blend_color(), brw_set_clip_state(), brw_set_constant_buffer(), brw_set_framebuffer_state(), brw_set_polygon_stipple(), brw_set_sampler_textures(), brw_set_scissor_state(), brw_set_vertex_buffers(), brw_set_vertex_elements(), brw_set_viewport_state(), pipe_context::create_blend_state, pipe_context::create_depth_stencil_alpha_state, pipe_context::create_fs_state, pipe_context::create_rasterizer_state, pipe_context::create_sampler_state, pipe_context::create_vs_state, pipe_context::delete_blend_state, pipe_context::delete_depth_stencil_alpha_state, pipe_context::delete_fs_state, pipe_context::delete_rasterizer_state, pipe_context::delete_sampler_state, pipe_context::delete_vs_state, brw_context::pipe, pipe_context::set_blend_color, pipe_context::set_clip_state, pipe_context::set_constant_buffer, pipe_context::set_framebuffer_state, pipe_context::set_polygon_stipple, pipe_context::set_sampler_textures, pipe_context::set_scissor_state, pipe_context::set_vertex_buffers, pipe_context::set_vertex_elements, and pipe_context::set_viewport_state.
00432 { 00433 brw->pipe.create_blend_state = brw_create_blend_state; 00434 brw->pipe.bind_blend_state = brw_bind_blend_state; 00435 brw->pipe.delete_blend_state = brw_delete_blend_state; 00436 00437 brw->pipe.create_sampler_state = brw_create_sampler_state; 00438 brw->pipe.bind_sampler_states = brw_bind_sampler_states; 00439 brw->pipe.delete_sampler_state = brw_delete_sampler_state; 00440 00441 brw->pipe.create_depth_stencil_alpha_state = brw_create_depth_stencil_state; 00442 brw->pipe.bind_depth_stencil_alpha_state = brw_bind_depth_stencil_state; 00443 brw->pipe.delete_depth_stencil_alpha_state = brw_delete_depth_stencil_state; 00444 00445 brw->pipe.create_rasterizer_state = brw_create_rasterizer_state; 00446 brw->pipe.bind_rasterizer_state = brw_bind_rasterizer_state; 00447 brw->pipe.delete_rasterizer_state = brw_delete_rasterizer_state; 00448 brw->pipe.create_fs_state = brw_create_fs_state; 00449 brw->pipe.bind_fs_state = brw_bind_fs_state; 00450 brw->pipe.delete_fs_state = brw_delete_fs_state; 00451 brw->pipe.create_vs_state = brw_create_vs_state; 00452 brw->pipe.bind_vs_state = brw_bind_vs_state; 00453 brw->pipe.delete_vs_state = brw_delete_vs_state; 00454 00455 brw->pipe.set_blend_color = brw_set_blend_color; 00456 brw->pipe.set_clip_state = brw_set_clip_state; 00457 brw->pipe.set_constant_buffer = brw_set_constant_buffer; 00458 brw->pipe.set_framebuffer_state = brw_set_framebuffer_state; 00459 00460 // brw->pipe.set_feedback_state = brw_set_feedback_state; 00461 // brw->pipe.set_feedback_buffer = brw_set_feedback_buffer; 00462 00463 brw->pipe.set_polygon_stipple = brw_set_polygon_stipple; 00464 brw->pipe.set_scissor_state = brw_set_scissor_state; 00465 brw->pipe.set_sampler_textures = brw_set_sampler_textures; 00466 brw->pipe.set_viewport_state = brw_set_viewport_state; 00467 brw->pipe.set_vertex_buffers = brw_set_vertex_buffers; 00468 brw->pipe.set_vertex_elements = brw_set_vertex_elements; 00469 }
static void brw_set_blend_color | ( | struct pipe_context * | pipe, | |
const struct pipe_blend_color * | blend_color | |||
) | [static] |
Definition at line 78 of file brw_state.c.
References brw_context::attribs, brw_context::BlendColor, brw_state_flags::brw, brw_context(), BRW_NEW_BLEND, brw_context::dirty, and brw_context::state.
00080 { 00081 struct brw_context *brw = brw_context(pipe); 00082 00083 brw->attribs.BlendColor = *blend_color; 00084 00085 brw->state.dirty.brw |= BRW_NEW_BLEND; 00086 }
static void brw_set_clip_state | ( | struct pipe_context * | pipe, | |
const struct pipe_clip_state * | clip | |||
) | [static] |
Definition at line 261 of file brw_state.c.
References brw_context::attribs, brw_context(), and brw_context::Clip.
00263 { 00264 struct brw_context *brw = brw_context(pipe); 00265 00266 brw->attribs.Clip = *clip; 00267 }
static void brw_set_constant_buffer | ( | struct pipe_context * | pipe, | |
uint | shader, | |||
uint | index, | |||
const struct pipe_constant_buffer * | buf | |||
) | [static] |
Definition at line 334 of file brw_state.c.
References assert, brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_CONSTANTS, brw_context::Constants, brw_context::dirty, and brw_context::state.
00337 { 00338 struct brw_context *brw = brw_context(pipe); 00339 00340 assert(buf == 0 || index == 0); 00341 00342 brw->attribs.Constants[shader] = buf; 00343 brw->state.dirty.brw |= BRW_NEW_CONSTANTS; 00344 }
static void brw_set_framebuffer_state | ( | struct pipe_context * | pipe, | |
const struct pipe_framebuffer_state * | fb | |||
) | [static] |
Definition at line 385 of file brw_state.c.
References brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_FRAMEBUFFER, brw_context::dirty, brw_context::FrameBuffer, and brw_context::state.
00387 { 00388 struct brw_context *brw = brw_context(pipe); 00389 00390 brw->attribs.FrameBuffer = *fb; /* struct copy */ 00391 00392 brw->state.dirty.brw |= BRW_NEW_FRAMEBUFFER; 00393 }
static void brw_set_polygon_stipple | ( | struct pipe_context * | pipe, | |
const struct pipe_poly_stipple * | stipple | |||
) | [static] |
static void brw_set_sampler_textures | ( | struct pipe_context * | pipe, | |
unsigned | num, | |||
struct pipe_texture ** | texture | |||
) | [static] |
Definition at line 352 of file brw_state.c.
References assert, brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_TEXTURE, brw_context::dirty, brw_context::num_textures, PIPE_MAX_SAMPLERS, pipe_texture_reference(), brw_context::state, and brw_context::Texture.
00355 { 00356 struct brw_context *brw = brw_context(pipe); 00357 uint i; 00358 00359 assert(num <= PIPE_MAX_SAMPLERS); 00360 00361 /* Check for no-op */ 00362 if (num == brw->num_textures && 00363 !memcmp(brw->attribs.Texture, texture, num * 00364 sizeof(struct pipe_texture *))) 00365 return; 00366 00367 for (i = 0; i < num; i++) 00368 pipe_texture_reference((struct pipe_texture **) &brw->attribs.Texture[i], 00369 texture[i]); 00370 00371 for (i = num; i < brw->num_textures; i++) 00372 pipe_texture_reference((struct pipe_texture **) &brw->attribs.Texture[i], 00373 NULL); 00374 00375 brw->num_textures = num; 00376 00377 brw->state.dirty.brw |= BRW_NEW_TEXTURE; 00378 }
static void brw_set_scissor_state | ( | struct pipe_context * | pipe, | |
const struct pipe_scissor_state * | scissor | |||
) | [static] |
Definition at line 157 of file brw_state.c.
References brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_SCISSOR, brw_context::dirty, brw_context::Scissor, and brw_context::state.
00159 { 00160 struct brw_context *brw = brw_context(pipe); 00161 00162 memcpy( &brw->attribs.Scissor, scissor, sizeof(*scissor) ); 00163 brw->state.dirty.brw |= BRW_NEW_SCISSOR; 00164 }
static void brw_set_vertex_buffers | ( | struct pipe_context * | pipe, | |
unsigned | count, | |||
const struct pipe_vertex_buffer * | buffers | |||
) | [static] |
Definition at line 283 of file brw_state.c.
References brw_context(), brw_context::vb, and brw_context::vbo_array.
00286 { 00287 struct brw_context *brw = brw_context(pipe); 00288 memcpy(brw->vb.vbo_array, buffers, count * sizeof(buffers[0])); 00289 }
static void brw_set_vertex_elements | ( | struct pipe_context * | pipe, | |
unsigned | count, | |||
const struct pipe_vertex_element * | elements | |||
) | [static] |
Definition at line 291 of file brw_state.c.
References assert, brw_context(), brw_translate_surface_format(), BRW_VFCOMPONENT_STORE_0, BRW_VFCOMPONENT_STORE_1_FLT, BRW_VFCOMPONENT_STORE_SRC, brw_vertex_element_state::dst_offset, brw_context::inputs, PIPE_MAX_ATTRIBS, brw_vertex_element_state::src_format, pipe_vertex_element::src_offset, brw_vertex_element_state::src_offset, brw_vertex_element_state::valid, brw_context::vb, brw_vertex_element_state::ve0, brw_vertex_element_state::ve1, pipe_vertex_element::vertex_buffer_index, brw_vertex_element_state::vertex_buffer_index, brw_vertex_element_state::vfcomponent0, brw_vertex_element_state::vfcomponent1, brw_vertex_element_state::vfcomponent2, and brw_vertex_element_state::vfcomponent3.
00294 { 00295 /* flush ? */ 00296 struct brw_context *brw = brw_context(pipe); 00297 uint i; 00298 00299 assert(count <= PIPE_MAX_ATTRIBS); 00300 00301 for (i = 0; i < count; i++) { 00302 struct brw_vertex_element_state el; 00303 memset(&el, 0, sizeof(el)); 00304 00305 el.ve0.src_offset = elements[i].src_offset; 00306 el.ve0.src_format = brw_translate_surface_format(elements[i].src_format); 00307 el.ve0.valid = 1; 00308 el.ve0.vertex_buffer_index = elements[i].vertex_buffer_index; 00309 00310 el.ve1.dst_offset = i * 4; 00311 00312 el.ve1.vfcomponent3 = BRW_VFCOMPONENT_STORE_SRC; 00313 el.ve1.vfcomponent2 = BRW_VFCOMPONENT_STORE_SRC; 00314 el.ve1.vfcomponent1 = BRW_VFCOMPONENT_STORE_SRC; 00315 el.ve1.vfcomponent0 = BRW_VFCOMPONENT_STORE_SRC; 00316 00317 switch (elements[i].nr_components) { 00318 case 1: el.ve1.vfcomponent1 = BRW_VFCOMPONENT_STORE_0; 00319 case 2: el.ve1.vfcomponent2 = BRW_VFCOMPONENT_STORE_0; 00320 case 3: el.ve1.vfcomponent3 = BRW_VFCOMPONENT_STORE_1_FLT; 00321 break; 00322 } 00323 00324 brw->vb.inputs[i] = el; 00325 } 00326 }
static void brw_set_viewport_state | ( | struct pipe_context * | pipe, | |
const struct pipe_viewport_state * | viewport | |||
) | [static] |
Definition at line 270 of file brw_state.c.
References brw_context::attribs, brw_state_flags::brw, brw_context(), BRW_NEW_VIEWPORT, brw_context::dirty, brw_context::state, and brw_context::Viewport.
00272 { 00273 struct brw_context *brw = brw_context(pipe); 00274 00275 brw->attribs.Viewport = *viewport; /* struct copy */ 00276 brw->state.dirty.brw |= BRW_NEW_VIEWPORT; 00277 00278 /* pass the viewport info to the draw module */ 00279 //draw_set_viewport_state(brw->draw, viewport); 00280 }