Lines Matching defs:r300

38 void r300_emit_blend_state(struct r300_context* r300,
43 (struct pipe_framebuffer_state*)r300->fb_state.state;
45 CS_LOCALS(r300);
63 void r300_emit_blend_color_state(struct r300_context* r300,
67 CS_LOCALS(r300);
72 void r300_emit_clip_state(struct r300_context* r300,
76 CS_LOCALS(r300);
81 void r300_emit_dsa_state(struct r300_context* r300, unsigned size, void* state)
85 (struct pipe_framebuffer_state*)r300->fb_state.state;
86 boolean is_r500 = r300->screen->caps.is_r500;
87 CS_LOCALS(r300);
105 if (r300->alpha_to_coverage && r300->msaa_enable) {
119 struct r300_context * r300,
122 struct r300_textures_state* texstate = r300->textures_state.state;
152 vec[0] = r300->viewport.scale[0];
153 vec[1] = r300->viewport.scale[1];
154 vec[2] = r300->viewport.scale[2];
159 vec[0] = r300->viewport.translate[0];
160 vec[1] = r300->viewport.translate[1];
161 vec[2] = r300->viewport.translate[2];
166 fprintf(stderr, "r300: Implementation error: "
209 void r300_emit_fs(struct r300_context* r300, unsigned size, void *state)
211 struct r300_fragment_shader *fs = r300_fs(r300);
212 CS_LOCALS(r300);
217 void r300_emit_fs_constants(struct r300_context* r300, unsigned size, void *state)
219 struct r300_fragment_shader *fs = r300_fs(r300);
223 CS_LOCALS(r300);
245 void r300_emit_fs_rc_constant_state(struct r300_context* r300, unsigned size, void *state)
247 struct r300_fragment_shader *fs = r300_fs(r300);
254 CS_LOCALS(r300);
264 get_rc_constant_state(data, r300, &constants->Constants[i]);
274 void r500_emit_fs(struct r300_context* r300, unsigned size, void *state)
276 struct r300_fragment_shader *fs = r300_fs(r300);
277 CS_LOCALS(r300);
282 void r500_emit_fs_constants(struct r300_context* r300, unsigned size, void *state)
284 struct r300_fragment_shader *fs = r300_fs(r300);
287 CS_LOCALS(r300);
306 void r500_emit_fs_rc_constant_state(struct r300_context* r300, unsigned size, void *state)
308 struct r300_fragment_shader *fs = r300_fs(r300);
314 CS_LOCALS(r300);
324 get_rc_constant_state(data, r300, &constants->Constants[i]);
336 void r300_emit_gpu_flush(struct r300_context *r300, unsigned size, void *state)
340 (struct pipe_framebuffer_state*)r300->fb_state.state;
343 CS_LOCALS(r300);
345 if (r300->cbzb_clear) {
352 DBG(r300, DBG_SCISSOR,
353 "r300: Scissor width: %i, height: %i, CBZB clear: %s\n",
354 width, height, r300->cbzb_clear ? "YES" : "NO");
361 if (r300->screen->caps.is_r500) {
377 void r300_emit_aa_state(struct r300_context *r300, unsigned size, void *state)
380 CS_LOCALS(r300);
399 void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state)
406 CS_LOCALS(r300);
410 if (r300->screen->caps.is_r500) {
414 if (fb->nr_cbufs && r300->fb_multiwrite) {
417 if (r300->cmask_in_use) {
434 if (r300->cmask_in_use && i == 0) {
437 OUT_CS_REG(R300_RB3D_COLOR_CLEAR_VALUE, r300->color_clear_value);
438 if (r300->screen->caps.is_r500) {
440 OUT_CS(r300->color_clear_value_ar);
441 OUT_CS(r300->color_clear_value_gb);
447 if (r300->cbzb_clear) {
458 DBG(r300, DBG_CBZB,
474 if (r300->hyperz_enabled) {
487 void r300_emit_hyperz_state(struct r300_context *r300,
491 CS_LOCALS(r300);
499 void r300_emit_hyperz_end(struct r300_context *r300)
502 *(struct r300_hyperz_state*)r300->hyperz_state.state;
510 r300_emit_hyperz_state(r300, r300->hyperz_state.size, &z);
566 void r300_emit_fb_state_pipelined(struct r300_context *r300,
590 (struct pipe_framebuffer_state*)r300->fb_state.state;
593 CS_LOCALS(r300);
597 if (r300->fb_multiwrite) {
621 switch (r300->num_samples) {
646 void r300_emit_query_start(struct r300_context *r300, unsigned size, void*state)
648 struct r300_query *query = r300->query_current;
649 CS_LOCALS(r300);
655 if (r300->screen->caps.family == CHIP_RV530) {
665 static void r300_emit_query_end_frag_pipes(struct r300_context *r300,
668 struct r300_capabilities* caps = &r300->screen->caps;
669 uint32_t gb_pipes = r300->screen->info.r300_num_gb_pipes;
670 CS_LOCALS(r300);
688 OUT_CS_RELOC(r300->query_current);
694 OUT_CS_RELOC(r300->query_current);
702 OUT_CS_RELOC(r300->query_current);
708 OUT_CS_RELOC(r300->query_current);
711 fprintf(stderr, "r300: Implementation error: Chipset reports %d"
721 static void rv530_emit_query_end_single_z(struct r300_context *r300,
724 CS_LOCALS(r300);
729 OUT_CS_RELOC(r300->query_current);
734 static void rv530_emit_query_end_double_z(struct r300_context *r300,
737 CS_LOCALS(r300);
742 OUT_CS_RELOC(r300->query_current);
745 OUT_CS_RELOC(r300->query_current);
750 void r300_emit_query_end(struct r300_context* r300)
752 struct r300_capabilities *caps = &r300->screen->caps;
753 struct r300_query *query = r300->query_current;
762 if (r300->screen->info.r300_num_z_pipes == 2)
763 rv530_emit_query_end_double_z(r300, query);
765 rv530_emit_query_end_single_z(r300, query);
767 r300_emit_query_end_frag_pipes(r300, query);
775 fprintf(stderr, "r300: Rewinding OQBO...\n");
779 void r300_emit_invariant_state(struct r300_context *r300,
782 CS_LOCALS(r300);
786 void r300_emit_rs_state(struct r300_context* r300, unsigned size, void* state)
789 CS_LOCALS(r300);
794 if (r300->zbuffer_bpp == 16) {
803 void r300_emit_rs_block_state(struct r300_context* r300,
810 CS_LOCALS(r300);
812 if (DBG_ON(r300, DBG_RS_BLOCK)) {
815 fprintf(stderr, "r300: RS emit:\n");
837 if (r300->screen->caps.is_r500) {
848 if (r300->screen->caps.is_r500) {
857 void r300_emit_sample_mask(struct r300_context *r300,
861 CS_LOCALS(r300);
869 void r300_emit_scissor_state(struct r300_context* r300,
873 CS_LOCALS(r300);
877 if (r300->screen->caps.is_r500) {
891 void r300_emit_textures_state(struct r300_context *r300,
898 boolean has_us_format = r300->screen->caps.has_us_format;
899 CS_LOCALS(r300);
930 void r300_emit_vertex_arrays(struct r300_context* r300, int offset,
933 struct pipe_vertex_buffer *vbuf = r300->vertex_buffer;
934 struct pipe_vertex_element *velem = r300->velems->velem;
937 unsigned vertex_array_count = r300->velems->count;
940 unsigned *hw_format_size = r300->velems->format_size;
942 CS_LOCALS(r300);
1030 void r300_emit_vertex_arrays_swtcl(struct r300_context *r300, boolean indexed)
1032 CS_LOCALS(r300);
1034 DBG(r300, DBG_SWTCL, "r300: Preparing vertex buffer %p for render, "
1035 "vertex size %d\n", r300->vbo,
1036 r300->vertex_info.size);
1047 OUT_CS(r300->vertex_info.size |
1048 (r300->vertex_info.size << 8));
1049 OUT_CS(r300->draw_vbo_offset);
1052 assert(r300->vbo);
1054 OUT_CS(r300->rws->cs_lookup_buffer(&r300->cs, r300->vbo) * 4);
1058 void r300_emit_vertex_stream_state(struct r300_context* r300,
1064 CS_LOCALS(r300);
1066 if (DBG_ON(r300, DBG_PSC)) {
1067 fprintf(stderr, "r300: PSC emit:\n");
1088 void r300_emit_pvs_flush(struct r300_context* r300, unsigned size, void* state)
1090 CS_LOCALS(r300);
1097 void r300_emit_vap_invariant_state(struct r300_context *r300,
1100 CS_LOCALS(r300);
1104 void r300_emit_vs_state(struct r300_context* r300, unsigned size, void* state)
1108 struct r300_screen* r300screen = r300->screen;
1120 CS_LOCALS(r300);
1141 (r300->clip_halfz ? R300_DX_CLIP_SPACE_DEF : 0) |
1152 OUT_CS_TABLE(code->fc_op_addrs.r300, R300_VS_MAX_FC_OPS);
1160 void r300_emit_vs_constants(struct r300_context* r300,
1163 unsigned count = r300_vs(r300)->shader->externals_count;
1165 struct r300_vertex_shader_code *vs = r300_vs(r300)->shader;
1170 CS_LOCALS(r300);
1178 (r300->screen->caps.is_r500 ?
1194 (r300->screen->caps.is_r500 ?
1206 void r300_emit_viewport_state(struct r300_context* r300,
1210 CS_LOCALS(r300);
1219 void r300_emit_hiz_clear(struct r300_context *r300, unsigned size, void *state)
1222 (struct pipe_framebuffer_state*)r300->fb_state.state;
1224 CS_LOCALS(r300);
1232 OUT_CS(r300->hiz_clear_value);
1236 r300->hiz_in_use = TRUE;
1237 r300->hiz_func = HIZ_FUNC_NONE;
1238 r300_mark_atom_dirty(r300, &r300->hyperz_state);
1241 void r300_emit_zmask_clear(struct r300_context *r300, unsigned size, void *state)
1244 (struct pipe_framebuffer_state*)r300->fb_state.state;
1246 CS_LOCALS(r300);
1258 r300->zmask_in_use = TRUE;
1259 r300_mark_atom_dirty(r300, &r300->hyperz_state);
1262 void r300_emit_cmask_clear(struct r300_context *r300, unsigned size, void *state)
1265 (struct pipe_framebuffer_state*)r300->fb_state.state;
1267 CS_LOCALS(r300);
1279 r300->cmask_in_use = TRUE;
1280 r300_mark_fb_state_dirty(r300, R300_CHANGED_CMASK_ENABLE);
1283 void r300_emit_ztop_state(struct r300_context* r300,
1287 CS_LOCALS(r300);
1294 void r300_emit_texture_cache_inval(struct r300_context* r300, unsigned size, void* state)
1296 CS_LOCALS(r300);
1303 boolean r300_emit_buffer_validate(struct r300_context *r300,
1308 (struct pipe_framebuffer_state*)r300->fb_state.state;
1309 struct r300_aa_state *aa = (struct r300_aa_state*)r300->aa_state.state;
1311 (struct r300_textures_state*)r300->textures_state.state;
1317 if (r300->fb_state.dirty) {
1324 r300->rws->cs_add_buffer(&r300->cs, tex->buf,
1335 r300->rws->cs_add_buffer(&r300->cs, tex->buf,
1344 if (r300->aa_state.dirty) {
1346 r300->rws->cs_add_buffer(&r300->cs, aa->dest->buf,
1352 if (r300->textures_state.dirty) {
1360 r300->rws->cs_add_buffer(&r300->cs, tex->buf,
1367 if (r300->query_current)
1368 r300->rws->cs_add_buffer(&r300->cs, r300->query_current->buf,
1373 if (r300->vbo)
1374 r300->rws->cs_add_buffer(&r300->cs, r300->vbo,
1379 if (do_validate_vertex_buffers && r300->vertex_arrays_dirty) {
1380 struct pipe_vertex_buffer *vbuf = r300->vertex_buffer;
1381 struct pipe_vertex_buffer *last = r300->vertex_buffer +
1382 r300->nr_vertex_buffers;
1390 r300->rws->cs_add_buffer(&r300->cs, r300_resource(buf)->buf,
1398 r300->rws->cs_add_buffer(&r300->cs, r300_resource(index_buffer)->buf,
1404 if (!r300->rws->cs_validate(&r300->cs)) {
1416 unsigned r300_get_num_dirty_dwords(struct r300_context *r300)
1421 foreach_dirty_atom(r300, atom) {
1433 unsigned r300_get_num_cs_end_dwords(struct r300_context *r300)
1439 dwords += r300->hyperz_state.size + 2; /* emit_hyperz_end + zcache flush */
1440 if (r300->screen->caps.is_r500)
1448 void r300_emit_dirty_state(struct r300_context* r300)
1452 foreach_dirty_atom(r300, atom) {
1454 atom->emit(r300, atom->size, atom->state);
1459 r300->first_dirty = NULL;
1460 r300->last_dirty = NULL;
1461 r300->dirty_hw++;