diff options
author | Rafael Antognolli <[email protected]> | 2019-03-06 16:59:44 -0800 |
---|---|---|
committer | Rafael Antognolli <[email protected]> | 2019-03-20 16:46:25 -0700 |
commit | ce830a364e0aec8c9769729162bfe7501feb028b (patch) | |
tree | c7b430aa32ed52d988c676ed3a2288f774e696d2 /src/gallium/drivers/iris/iris_context.h | |
parent | 131b42f0aa574cc654c5970ba48c4d1896f6d502 (diff) |
iris: Add iris_resolve_conditional_render().
This function can be used to stall on the CPU and resolve the predicate
for the conditional render. It will convert ice->state.predicate from
IRIS_PREDICATE_STATE_USE_BIT to either IRIS_PREDICATE_STATE_RENDER or
IRIS_PREDICATE_STATE_DONT_RENDER, depending on the result of the query.
v2:
- return void (Ken)
- update the stored condition (Ken)
- simplify the code leading to resolve the predicate (Ken)
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/gallium/drivers/iris/iris_context.h')
-rw-r--r-- | src/gallium/drivers/iris/iris_context.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index 8f91d28446f..f3a5bdb7eb8 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -515,6 +515,11 @@ struct iris_context { } shaders; struct { + struct iris_query *query; + bool condition; + } condition; + + struct { uint64_t dirty; uint64_t dirty_for_nos[IRIS_NOS_COUNT]; @@ -781,6 +786,7 @@ void iris_math_div32_gpr0(struct iris_context *ice, uint64_t iris_timebase_scale(const struct gen_device_info *devinfo, uint64_t gpu_timestamp); +void iris_resolve_conditional_render(struct iris_context *ice); /* iris_resolve.c */ |