summaryrefslogtreecommitdiff
path: root/src/broadcom/compiler/v3d_compiler.h
diff options
context:
space:
mode:
authorIago Toral Quiroga <itoral@igalia.com>2021-03-04 09:21:53 +0100
committerIago Toral Quiroga <itoral@igalia.com>2021-03-05 10:32:19 +0100
commit839007e490d45a5cb43dda4c0aa0c2b8bc47ab78 (patch)
tree6e45601bde0f7b2befe5c2a2412e4e8a850e2656 /src/broadcom/compiler/v3d_compiler.h
parent2169c4f76385fd81e99224f5437a925500173bbe (diff)
broadcom/compiler: always restart ldvary pipelining when scheduling ldvary
When we were only able to pipeline smooth varyings, if we had to disable ldvary pipelining in the middle of a sequence it would stay disabled for the rest of the program, to prevent us from prioritizing scheduling of ldvary instructions that we would not be able to pipeline effectively. Now that we can pipeline all ldvary sequences we can change this. This change re-enables ldvary pipelining upon finding the next ldvary in the program in the hopes that we can continue pipelining succesfully. To do this, we track the number of ldvary instructions we emitted so far and compare that to the number of inputs in the fragment shader we are scheduling. This also allows us to simplify our ldvary tracking at nir to vir time, since that is all now handled in the QPU scheduler. total instructions in shared programs: 13817048 -> 13810783 (-0.05%) instructions in affected programs: 810114 -> 803849 (-0.77%) helped: 4843 HURT: 591 Instructions are helped. total max-temps in shared programs: 2326612 -> 2326300 (-0.01%) max-temps in affected programs: 4689 -> 4377 (-6.65%) helped: 285 HURT: 7 Max-temps are helped. total sfu-stalls in shared programs: 30942 -> 30865 (-0.25%) sfu-stalls in affected programs: 207 -> 130 (-37.20%) helped: 120 HURT: 42 Sfu-stalls are helped. total inst-and-stalls in shared programs: 13847990 -> 13841648 (-0.05%) inst-and-stalls in affected programs: 825378 -> 819036 (-0.77%) helped: 4899 HURT: 590 Inst-and-stalls are helped. Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9404>
Diffstat (limited to 'src/broadcom/compiler/v3d_compiler.h')
-rw-r--r--src/broadcom/compiler/v3d_compiler.h13
1 files changed, 0 insertions, 13 deletions
diff --git a/src/broadcom/compiler/v3d_compiler.h b/src/broadcom/compiler/v3d_compiler.h
index ed8747d11a3..fafdf5a208f 100644
--- a/src/broadcom/compiler/v3d_compiler.h
+++ b/src/broadcom/compiler/v3d_compiler.h
@@ -165,14 +165,6 @@ struct qinst {
/* Set if this instruction participates in a varying setup. */
bool is_ldvary_sequence;
- /* Set if this is the ldvary instruction starting a sequence of
- * varyings we want to pipeline.
- */
- bool ldvary_pipelining_start;
- /* Set if this is the last instruction involved with a pipelineable
- * varying sequence.
- */
- bool ldvary_pipelining_end;
};
enum quniform_contents {
@@ -780,11 +772,6 @@ struct v3d_compile {
uint32_t program_id;
uint32_t variant_id;
- /* Used to track pipelinable sequences of varyings */
- struct qinst *ldvary_sequence_start_inst;
- struct qinst *ldvary_sequence_end_inst;
- uint32_t ldvary_sequence_length;
-
/* Set to compile program in in 1x, 2x, or 4x threaded mode, where
* SIG_THREAD_SWITCH is used to hide texturing latency at the cost of
* limiting ourselves to the part of the physical reg space.