diff options
author | Kenneth Graunke <[email protected]> | 2019-05-20 23:20:45 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-05-21 15:05:38 -0700 |
commit | 6ae2caf20103d7a09d3e2f38537c997eb171311d (patch) | |
tree | 535583bc3220a76afe922cb2b922485510908602 /src/gallium/drivers/iris/iris_context.h | |
parent | 419d9b21e14d67776ec3a47df110dcbb6566dc03 (diff) |
iris: Move iris_uncompiled_shader definition to iris_context.h
It had been internal to iris_program.c, but with the upcoming disk cache
code, the "program module" is going to be spread across a couple source
files. Into a header it goes!
Now it lives alongside iris_compiled_shader, which makes sense.
Reviewed-by: Dylan Baker <[email protected]>
Diffstat (limited to 'src/gallium/drivers/iris/iris_context.h')
-rw-r--r-- | src/gallium/drivers/iris/iris_context.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index b6d44d637a6..294f325d19d 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -247,6 +247,29 @@ enum iris_predicate_state { /** @} */ /** + * An uncompiled, API-facing shader. This is the Gallium CSO for shaders. + * It primarily contains the NIR for the shader. + * + * Each API-facing shader can be compiled into multiple shader variants, + * based on non-orthogonal state dependencies, recorded in the shader key. + * + * See iris_compiled_shader, which represents a compiled shader variant. + */ +struct iris_uncompiled_shader { + struct nir_shader *nir; + + struct pipe_stream_output_info stream_output; + + unsigned program_id; + + /** Bitfield of (1 << IRIS_NOS_*) flags. */ + unsigned nos; + + /** Have any shader variants been compiled yet? */ + bool compiled_once; +}; + +/** * A compiled shader variant, containing a pointer to the GPU assembly, * as well as program data and other packets needed by state upload. * |