diff options
author | Constantine Kharlamov <[email protected]> | 2017-04-02 20:33:05 +0300 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-04-04 22:15:47 +0200 |
commit | 7ade08e2a83d5cf1d9dbdb767130f19e9d885864 (patch) | |
tree | 05fe3094024c8edb1dd07efec71b4a5def3e244b /src/gallium/drivers/r600/r600_pipe.h | |
parent | fa8bc90990212ac213355140e59a57df655efb73 (diff) |
r600g: extract a code into a r600_emit_rasterizer_prim_state()
Also change gs_output_prim type: unsigned → pipe_prim_type. The idea of
the code is mostly taken from radeonsi. The new code operating on
prev/curr rast_primitives saves ≈15 reloads of PA_SC_LINE_STIPPLE per
frame in Kane&Lynch2
Signed-off-by: Constantine Kharlamov <[email protected]>
Signed-off-by: Marek Olšák <[email protected]>
Tested-by: Dieter Nützel <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_pipe.h')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index a05d543f0d1..86634b8681f 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -322,9 +322,9 @@ struct r600_pipe_shader_selector { enum pipe_shader_type type; /* geometry shader properties */ - unsigned gs_output_prim; - unsigned gs_max_out_vertices; - unsigned gs_num_invocations; + enum pipe_prim_type gs_output_prim; + unsigned gs_max_out_vertices; + unsigned gs_num_invocations; /* TCS/VS */ uint64_t lds_patch_outputs_written_mask; @@ -512,6 +512,8 @@ struct r600_context { /* Last draw state (-1 = unset). */ enum pipe_prim_type last_primitive_type; /* Last primitive type used in draw_vbo. */ + enum pipe_prim_type current_rast_prim; /* primitive type after TES, GS */ + enum pipe_prim_type last_rast_prim; unsigned last_start_instance; void *sb_context; |