1 /* 2 * Copyright 2008 Corbin Simpson <[email protected]> 3 * SPDX-License-Identifier: MIT 4 */ 5 6 #ifndef R300_EMIT_H 7 #define R300_EMIT_H 8 9 #include "r300_context.h" 10 11 struct rX00_fragment_program_code; 12 struct r300_vertex_program_code; 13 14 uint32_t pack_float24(float f); 15 16 void r300_emit_vertex_arrays(struct r300_context* r300, int offset, 17 bool indexed, int instance_id); 18 19 void r300_emit_blend_state(struct r300_context* r300, 20 unsigned size, void* state); 21 22 void r300_emit_blend_color_state(struct r300_context* r300, 23 unsigned size, void* state); 24 25 void r300_emit_clip_state(struct r300_context* r300, 26 unsigned size, void* state); 27 28 void r300_emit_dsa_state(struct r300_context* r300, 29 unsigned size, void* state); 30 31 void r300_emit_hyperz_state(struct r300_context *r300, 32 unsigned size, void *state); 33 34 void r300_emit_hyperz_end(struct r300_context *r300); 35 36 void r300_emit_fs(struct r300_context* r300, unsigned size, void *state); 37 38 void r300_emit_fs_constants(struct r300_context* r300, unsigned size, void *state); 39 40 void r300_emit_fs_rc_constant_state(struct r300_context* r300, unsigned size, void *state); 41 42 void r500_emit_fs(struct r300_context* r300, unsigned size, void *state); 43 44 void r500_emit_fs_constants(struct r300_context* r300, unsigned size, void *state); 45 46 void r500_emit_fs_rc_constant_state(struct r300_context* r300, unsigned size, void *state); 47 48 void r300_emit_fb_state(struct r300_context* r300, unsigned size, void* state); 49 50 void r300_emit_fb_state_pipelined(struct r300_context *r300, 51 unsigned size, void *state); 52 53 void r300_emit_gpu_flush(struct r300_context *r300, unsigned size, void *state); 54 55 void r300_emit_aa_state(struct r300_context *r300, unsigned size, void *state); 56 57 void r300_emit_query_start(struct r300_context *r300, unsigned size, void *state); 58 59 void r300_emit_query_end(struct r300_context* r300); 60 61 void r300_emit_rs_state(struct r300_context* r300, unsigned size, void* state); 62 63 void r300_emit_rs_block_state(struct r300_context* r300, 64 unsigned size, void* state); 65 66 void r300_emit_sample_mask(struct r300_context *r300, 67 unsigned size, void *state); 68 69 void r300_emit_scissor_state(struct r300_context* r300, 70 unsigned size, void* state); 71 72 void r300_emit_textures_state(struct r300_context *r300, 73 unsigned size, void *state); 74 75 void r300_emit_vertex_arrays_swtcl(struct r300_context *r300, bool indexed); 76 77 void r300_emit_vap_invariant_state(struct r300_context *r300, 78 unsigned size, void *state); 79 80 void r300_emit_vertex_stream_state(struct r300_context* r300, 81 unsigned size, void* state); 82 83 void r300_emit_vs_constants(struct r300_context* r300, 84 unsigned size, void *state); 85 86 void r300_emit_vs_state(struct r300_context* r300, unsigned size, void* state); 87 88 void r300_emit_viewport_state(struct r300_context* r300, 89 unsigned size, void* state); 90 91 void r300_emit_ztop_state(struct r300_context* r300, 92 unsigned size, void* state); 93 94 void r300_emit_pvs_flush(struct r300_context* r300, unsigned size, void* state); 95 96 void r300_emit_texture_cache_inval(struct r300_context* r300, unsigned size, void* state); 97 98 void r300_emit_invariant_state(struct r300_context *r300, 99 unsigned size, void *state); 100 101 void r300_emit_hiz_clear(struct r300_context *r300, unsigned size, void *state); 102 void r300_emit_zmask_clear(struct r300_context *r300, unsigned size, void *state); 103 void r300_emit_cmask_clear(struct r300_context *r300, unsigned size, void *state); 104 105 unsigned r300_get_num_dirty_dwords(struct r300_context *r300); 106 unsigned r300_get_num_cs_end_dwords(struct r300_context *r300); 107 108 /* Emit all dirty state. */ 109 void r300_emit_dirty_state(struct r300_context* r300); 110 111 bool r300_emit_buffer_validate(struct r300_context *r300, 112 bool do_validate_vertex_buffers, 113 struct pipe_resource *index_buffer); 114 115 #endif /* R300_EMIT_H */ 116