summaryrefslogtreecommitdiff
path: root/lib/mesa/src/gallium/drivers/freedreno/freedreno_batch.h
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2020-09-22 02:09:17 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2020-09-22 02:09:17 +0000
commit865c23c9c56f47f6cf8d73e8a6060a0c33a28b93 (patch)
treeaeed22bc39ce87dd6f09ff173c8273beaef65fe7 /lib/mesa/src/gallium/drivers/freedreno/freedreno_batch.h
parent27e7bb02bd0f89f96d9e3b402b46c2c97ee4defe (diff)
Merge Mesa 20.0.8
With Mesa 20.1 even after the kernel change to do wbinvd on all cpus sthen@ reported that hard hangs still occurred on his Haswell system with inteldrm. Mark Kane also reported seeing hangs on Ivy Bridge on bugs@. Some systems/workloads seem to be more prone to triggering this than others as I have not seen any hangs on Ivy Bridge and the only hangs I saw on Haswell when running piglit went away with the wbinvd change. It seems something is wrong with drm memory attributes or coherency in the kernel and newer Mesa versions expect behaviour we don't have.
Diffstat (limited to 'lib/mesa/src/gallium/drivers/freedreno/freedreno_batch.h')
-rw-r--r--lib/mesa/src/gallium/drivers/freedreno/freedreno_batch.h19
1 files changed, 5 insertions, 14 deletions
diff --git a/lib/mesa/src/gallium/drivers/freedreno/freedreno_batch.h b/lib/mesa/src/gallium/drivers/freedreno/freedreno_batch.h
index 479d78d5e..a3bdfda10 100644
--- a/lib/mesa/src/gallium/drivers/freedreno/freedreno_batch.h
+++ b/lib/mesa/src/gallium/drivers/freedreno/freedreno_batch.h
@@ -47,11 +47,11 @@ enum fd_resource_status;
* is active across IB's (or between tile IB and draw IB)
*/
enum fd_render_stage {
- FD_STAGE_NULL = 0x00,
- FD_STAGE_DRAW = 0x01,
- FD_STAGE_CLEAR = 0x02,
+ FD_STAGE_NULL = 0x01,
+ FD_STAGE_DRAW = 0x02,
+ FD_STAGE_CLEAR = 0x04,
/* used for driver internal draws (ie. util_blitter_blit()): */
- FD_STAGE_BLIT = 0x04,
+ FD_STAGE_BLIT = 0x08,
FD_STAGE_ALL = 0xff,
};
@@ -129,16 +129,9 @@ struct fd_batch {
*/
const struct fd_gmem_stateobj *gmem_state;
- unsigned num_draws; /* number of draws in current batch */
+ unsigned num_draws; /* number of draws in current batch */
unsigned num_vertices; /* number of vertices in current batch */
- /* Currently only used on a6xx, to calculate vsc prim/draw stream
- * sizes:
- */
- unsigned num_bins_per_pipe;
- unsigned prim_strm_bits;
- unsigned draw_strm_bits;
-
/* Track the maximal bounds of the scissor of all the draws within a
* batch. Used at the tile rendering step (fd_gmem_render_tiles(),
* mem2gmem/gmem2mem) to avoid needlessly moving data in/out of gmem.
@@ -247,8 +240,6 @@ struct fd_batch {
uint32_t tessparam_size;
struct fd_ringbuffer *tess_addrs_constobj;
-
- struct list_head log_chunks; /* list of unflushed log chunks in fifo order */
};
struct fd_batch * fd_batch_create(struct fd_context *ctx, bool nondraw);