aboutsummaryrefslogtreecommitdiffstats
path: root/src/panfrost
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-12-30 12:13:45 -0500
committerAlyssa Rosenzweig <[email protected]>2019-12-30 17:11:08 -0500
commit8f4b15636b0c51519d3798dbf77291e5bad7ec3e (patch)
treed7811c1a1555ce6dc7f3a176a6a280fec82550df /src/panfrost
parent67fe2afa51984398a7d9d458447b99522a847def (diff)
panfrost: Remove MRT indirection in blend shaders
Since we have a separate blend shader for each render target, let's simplify this structure and reduce the options memory footprint by 88% or something goofy like that. Should also enable separate blending per render target. Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/panfrost')
-rw-r--r--src/panfrost/midgard/disassemble.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/panfrost/midgard/disassemble.c b/src/panfrost/midgard/disassemble.c
index d4354388959..1b7d4689ef7 100644
--- a/src/panfrost/midgard/disassemble.c
+++ b/src/panfrost/midgard/disassemble.c
@@ -1454,6 +1454,7 @@ disassemble_midgard(uint8_t *code, size_t size, unsigned gpu_id, gl_shader_stage
uint32_t *words = (uint32_t *) code;
unsigned num_words = size / 4;
int tabs = 0;
+ num_words = MIN2(num_words, 100);
bool prefetch_flag = false;
@@ -1470,6 +1471,7 @@ disassemble_midgard(uint8_t *code, size_t size, unsigned gpu_id, gl_shader_stage
while (i < num_words) {
unsigned tag = words[i] & 0xF;
unsigned next_tag = (words[i] >> 4) & 0xF;
+ printf("\t%X -> %X\n", tag, next_tag);
unsigned num_quad_words = midgard_word_size[tag];
if (midg_tags[i] && midg_tags[i] != tag) {
@@ -1544,12 +1546,14 @@ disassemble_midgard(uint8_t *code, size_t size, unsigned gpu_id, gl_shader_stage
/* Break based on instruction prefetch flag */
+#if 0
if (i < num_words && next == 1) {
prefetch_flag = true;
if (midgard_word_types[words[i] & 0xF] != midgard_word_type_alu)
break;
}
+#endif
i += 4 * num_quad_words;
}