summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/evergreen_state.c
diff options
context:
space:
mode:
authorMarek Olšák <marek.olsak@amd.com>2020-11-29 04:09:02 -0500
committerMarek Olšák <marek.olsak@amd.com>2020-12-05 10:52:17 -0500
commit3bd9db5be3c0e28443098dd0108e01a73c2b83e2 (patch)
tree535d4497b6739f707089c5ea20c719ebd46c8f39 /src/gallium/drivers/r600/evergreen_state.c
parent40a7f6d0477c06cf7eef0cee253cc3de300236d5 (diff)
r300,r600,radeonsi: inline struct radeon_cmdbuf to remove dereferences
It's straightforward except that the amdgpu winsys had to be cleaned up to allow this. radeon_cmdbuf is inlined and optionally the winsys can save the pointer to it. radeon_cmdbuf::priv points to the winsys cs structure. Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7907>
Diffstat (limited to 'src/gallium/drivers/r600/evergreen_state.c')
-rw-r--r--src/gallium/drivers/r600/evergreen_state.c52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index f9c71668fbf..3d8088ac60b 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -975,7 +975,7 @@ evergreen_create_sampler_view(struct pipe_context *ctx,
static void evergreen_emit_config_state(struct r600_context *rctx, struct r600_atom *atom)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_config_state *a = (struct r600_config_state*)atom;
radeon_set_config_reg_seq(cs, R_008C04_SQ_GPR_RESOURCE_MGMT_1, 3);
@@ -1002,7 +1002,7 @@ static void evergreen_emit_config_state(struct r600_context *rctx, struct r600_a
static void evergreen_emit_clip_state(struct r600_context *rctx, struct r600_atom *atom)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct pipe_clip_state *state = &rctx->clip_state.state;
radeon_set_context_reg_seq(cs, R_0285BC_PA_CL_UCP0_X, 6*4);
@@ -1658,7 +1658,7 @@ static void evergreen_get_sample_position(struct pipe_context *ctx,
static void evergreen_emit_msaa_state(struct r600_context *rctx, int nr_samples, int ps_iter_samples)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
unsigned max_dist = 0;
switch (nr_samples) {
@@ -1707,7 +1707,7 @@ static void evergreen_emit_image_state(struct r600_context *rctx, struct r600_at
{
struct r600_image_state *state = (struct r600_image_state *)atom;
struct pipe_framebuffer_state *fb_state = &rctx->framebuffer.state;
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_texture *rtex;
struct r600_resource *resource;
int i;
@@ -1834,7 +1834,7 @@ static void evergreen_emit_compute_buffer_state(struct r600_context *rctx, struc
static void evergreen_emit_framebuffer_state(struct r600_context *rctx, struct r600_atom *atom)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct pipe_framebuffer_state *state = &rctx->framebuffer.state;
unsigned nr_cbufs = state->nr_cbufs;
unsigned i, tl, br;
@@ -1973,7 +1973,7 @@ static void evergreen_emit_framebuffer_state(struct r600_context *rctx, struct r
static void evergreen_emit_polygon_offset(struct r600_context *rctx, struct r600_atom *a)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_poly_offset_state *state = (struct r600_poly_offset_state*)a;
float offset_units = state->offset_units;
float offset_scale = state->offset_scale;
@@ -2031,7 +2031,7 @@ uint32_t evergreen_construct_rat_mask(struct r600_context *rctx, struct r600_cb_
static void evergreen_emit_cb_misc_state(struct r600_context *rctx, struct r600_atom *atom)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_cb_misc_state *a = (struct r600_cb_misc_state*)atom;
unsigned fb_colormask = a->bound_cbufs_target_mask;
unsigned ps_colormask = a->ps_color_export_mask;
@@ -2046,7 +2046,7 @@ static void evergreen_emit_cb_misc_state(struct r600_context *rctx, struct r600_
static void evergreen_emit_db_state(struct r600_context *rctx, struct r600_atom *atom)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_db_state *a = (struct r600_db_state*)atom;
if (a->rsurf && a->rsurf->db_htile_surface) {
@@ -2069,7 +2069,7 @@ static void evergreen_emit_db_state(struct r600_context *rctx, struct r600_atom
static void evergreen_emit_db_misc_state(struct r600_context *rctx, struct r600_atom *atom)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_db_misc_state *a = (struct r600_db_misc_state*)atom;
unsigned db_render_control = 0;
unsigned db_count_control = 0;
@@ -2124,7 +2124,7 @@ static void evergreen_emit_vertex_buffers(struct r600_context *rctx,
unsigned resource_offset,
unsigned pkt_flags)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
uint32_t dirty_mask = state->dirty_mask;
while (dirty_mask) {
@@ -2183,7 +2183,7 @@ static void evergreen_emit_constant_buffers(struct r600_context *rctx,
unsigned reg_alu_const_cache,
unsigned pkt_flags)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
uint32_t dirty_mask = state->dirty_mask;
while (dirty_mask) {
@@ -2335,7 +2335,7 @@ static void evergreen_emit_sampler_views(struct r600_context *rctx,
struct r600_samplerview_state *state,
unsigned resource_id_base, unsigned pkt_flags)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
uint32_t dirty_mask = state->dirty_mask;
while (dirty_mask) {
@@ -2444,7 +2444,7 @@ static void evergreen_emit_sampler_states(struct r600_context *rctx,
unsigned border_index_reg,
unsigned pkt_flags)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
uint32_t dirty_mask = texinfo->states.dirty_mask;
union pipe_color_union border_color = {{0,0,0,1}};
union pipe_color_union *border_color_ptr = &border_color;
@@ -2528,14 +2528,14 @@ static void evergreen_emit_sample_mask(struct r600_context *rctx, struct r600_at
struct r600_sample_mask *s = (struct r600_sample_mask*)a;
uint8_t mask = s->sample_mask;
- radeon_set_context_reg(rctx->b.gfx.cs, R_028C3C_PA_SC_AA_MASK,
+ radeon_set_context_reg(&rctx->b.gfx.cs, R_028C3C_PA_SC_AA_MASK,
mask | (mask << 8) | (mask << 16) | (mask << 24));
}
static void cayman_emit_sample_mask(struct r600_context *rctx, struct r600_atom *a)
{
struct r600_sample_mask *s = (struct r600_sample_mask*)a;
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
uint16_t mask = s->sample_mask;
radeon_set_context_reg_seq(cs, CM_R_028C38_PA_SC_AA_MASK_X0Y0_X1Y0, 2);
@@ -2545,7 +2545,7 @@ static void cayman_emit_sample_mask(struct r600_context *rctx, struct r600_atom
static void evergreen_emit_vertex_fetch_shader(struct r600_context *rctx, struct r600_atom *a)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_cso_state *state = (struct r600_cso_state*)a;
struct r600_fetch_shader *shader = (struct r600_fetch_shader*)state->cso;
@@ -2562,7 +2562,7 @@ static void evergreen_emit_vertex_fetch_shader(struct r600_context *rctx, struct
static void evergreen_emit_shader_stages(struct r600_context *rctx, struct r600_atom *a)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_shader_stages_state *state = (struct r600_shader_stages_state*)a;
uint32_t v = 0, v2 = 0, primid = 0, tf_param = 0;
@@ -2666,7 +2666,7 @@ static void evergreen_emit_shader_stages(struct r600_context *rctx, struct r600_
static void evergreen_emit_gs_rings(struct r600_context *rctx, struct r600_atom *a)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_gs_rings_state *state = (struct r600_gs_rings_state*)a;
struct r600_resource *rbuffer;
@@ -3776,7 +3776,7 @@ static void evergreen_dma_copy_tile(struct r600_context *rctx,
unsigned pitch,
unsigned bpp)
{
- struct radeon_cmdbuf *cs = rctx->b.dma.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.dma.cs;
struct r600_texture *rsrc = (struct r600_texture*)src;
struct r600_texture *rdst = (struct r600_texture*)dst;
unsigned array_mode, lbpp, pitch_tile_max, slice_tile_max, size;
@@ -3898,7 +3898,7 @@ static void evergreen_dma_copy(struct pipe_context *ctx,
unsigned src_x, src_y;
unsigned dst_x = dstx, dst_y = dsty, dst_z = dstz;
- if (rctx->b.dma.cs == NULL) {
+ if (rctx->b.dma.cs.priv == NULL) {
goto fallback;
}
@@ -4752,7 +4752,7 @@ bool evergreen_adjust_gprs(struct r600_context *rctx)
void eg_trace_emit(struct r600_context *rctx)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
unsigned reloc;
if (rctx->b.chip_class < EVERGREEN)
@@ -4782,7 +4782,7 @@ static void evergreen_emit_set_append_cnt(struct r600_context *rctx,
struct r600_resource *resource,
uint32_t pkt_flags)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
unsigned reloc = radeon_add_to_buffer_list(&rctx->b, &rctx->b.gfx,
resource,
RADEON_USAGE_READ,
@@ -4805,7 +4805,7 @@ static void evergreen_emit_event_write_eos(struct r600_context *rctx,
struct r600_resource *resource,
uint32_t pkt_flags)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
uint32_t event = EVENT_TYPE_PS_DONE;
uint32_t base_reg_0 = R_02872C_GDS_APPEND_COUNT_0;
uint32_t reloc = radeon_add_to_buffer_list(&rctx->b, &rctx->b.gfx,
@@ -4832,7 +4832,7 @@ static void cayman_emit_event_write_eos(struct r600_context *rctx,
struct r600_resource *resource,
uint32_t pkt_flags)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
uint32_t event = EVENT_TYPE_PS_DONE;
uint32_t reloc = radeon_add_to_buffer_list(&rctx->b, &rctx->b.gfx,
resource,
@@ -4858,7 +4858,7 @@ static void cayman_write_count_to_gds(struct r600_context *rctx,
struct r600_resource *resource,
uint32_t pkt_flags)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
unsigned reloc = radeon_add_to_buffer_list(&rctx->b, &rctx->b.gfx,
resource,
RADEON_USAGE_READ,
@@ -4953,7 +4953,7 @@ void evergreen_emit_atomic_buffer_save(struct r600_context *rctx,
struct r600_shader_atomic *combined_atomics,
uint8_t *atomic_used_mask_p)
{
- struct radeon_cmdbuf *cs = rctx->b.gfx.cs;
+ struct radeon_cmdbuf *cs = &rctx->b.gfx.cs;
struct r600_atomic_buffer_state *astate = &rctx->atomic_buffer_state;
uint32_t pkt_flags = 0;
uint32_t event = EVENT_TYPE_PS_DONE;