projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
freedreno: small fix for flushing dependent batches
[mesa.git]
/
src
/
gallium
/
drivers
/
freedreno
/
ir3
/
ir3.c
diff --git
a/src/gallium/drivers/freedreno/ir3/ir3.c
b/src/gallium/drivers/freedreno/ir3/ir3.c
index e59f10dab9368be0dae97c158772660b6817f554..dd5fb2fbbe5ae483d5cb69f7601233883cf80d03 100644
(file)
--- a/
src/gallium/drivers/freedreno/ir3/ir3.c
+++ b/
src/gallium/drivers/freedreno/ir3/ir3.c
@@
-258,6
+258,7
@@
static int emit_cat2(struct ir3_instruction *instr, void *ptr,
cat2->dst = reg(dst, info, instr->repeat,
IR3_REG_R | IR3_REG_EI | IR3_REG_HALF);
cat2->repeat = instr->repeat;
cat2->dst = reg(dst, info, instr->repeat,
IR3_REG_R | IR3_REG_EI | IR3_REG_HALF);
cat2->repeat = instr->repeat;
+ cat2->sat = !!(instr->flags & IR3_INSTR_SAT);
cat2->ss = !!(instr->flags & IR3_INSTR_SS);
cat2->ul = !!(instr->flags & IR3_INSTR_UL);
cat2->dst_half = !!((src1->flags ^ dst->flags) & IR3_REG_HALF);
cat2->ss = !!(instr->flags & IR3_INSTR_SS);
cat2->ul = !!(instr->flags & IR3_INSTR_UL);
cat2->dst_half = !!((src1->flags ^ dst->flags) & IR3_REG_HALF);
@@
-354,6
+355,7
@@
static int emit_cat3(struct ir3_instruction *instr, void *ptr,
cat3->dst = reg(dst, info, instr->repeat, IR3_REG_R | IR3_REG_HALF);
cat3->repeat = instr->repeat;
cat3->dst = reg(dst, info, instr->repeat, IR3_REG_R | IR3_REG_HALF);
cat3->repeat = instr->repeat;
+ cat3->sat = !!(instr->flags & IR3_INSTR_SAT);
cat3->ss = !!(instr->flags & IR3_INSTR_SS);
cat3->ul = !!(instr->flags & IR3_INSTR_UL);
cat3->dst_half = !!((src_flags ^ dst->flags) & IR3_REG_HALF);
cat3->ss = !!(instr->flags & IR3_INSTR_SS);
cat3->ul = !!(instr->flags & IR3_INSTR_UL);
cat3->dst_half = !!((src_flags ^ dst->flags) & IR3_REG_HALF);
@@
-401,6
+403,7
@@
static int emit_cat4(struct ir3_instruction *instr, void *ptr,
cat4->dst = reg(dst, info, instr->repeat, IR3_REG_R | IR3_REG_HALF);
cat4->repeat = instr->repeat;
cat4->dst = reg(dst, info, instr->repeat, IR3_REG_R | IR3_REG_HALF);
cat4->repeat = instr->repeat;
+ cat4->sat = !!(instr->flags & IR3_INSTR_SAT);
cat4->ss = !!(instr->flags & IR3_INSTR_SS);
cat4->ul = !!(instr->flags & IR3_INSTR_UL);
cat4->dst_half = !!((src->flags ^ dst->flags) & IR3_REG_HALF);
cat4->ss = !!(instr->flags & IR3_INSTR_SS);
cat4->ul = !!(instr->flags & IR3_INSTR_UL);
cat4->dst_half = !!((src->flags ^ dst->flags) & IR3_REG_HALF);
@@
-742,8
+745,7
@@
static void insert_instr(struct ir3_block *block,
{
struct ir3 *shader = block->shader;
#ifdef DEBUG
{
struct ir3 *shader = block->shader;
#ifdef DEBUG
- static uint32_t serialno = 0;
- instr->serialno = ++serialno;
+ instr->serialno = ++shader->instr_count;
#endif
list_addtail(&instr->node, &block->instr_list);
#endif
list_addtail(&instr->node, &block->instr_list);
@@
-755,8
+757,7
@@
struct ir3_block * ir3_block_create(struct ir3 *shader)
{
struct ir3_block *block = ir3_alloc(shader, sizeof(*block));
#ifdef DEBUG
{
struct ir3_block *block = ir3_alloc(shader, sizeof(*block));
#ifdef DEBUG
- static uint32_t serialno = 0;
- block->serialno = ++serialno;
+ block->serialno = ++shader->block_count;
#endif
block->shader = shader;
list_inithead(&block->node);
#endif
block->shader = shader;
list_inithead(&block->node);