panfrost: Expose compute shaders as panfrost_shader_variants

Whether variants are packed by graphics or compute is irrelevant.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
Alyssa Rosenzweig
2019-07-31 15:20:00 -07:00
parent 8b53230d47
commit 1b284628ef
2 changed files with 14 additions and 2 deletions
+5 -1
View File
@@ -33,7 +33,11 @@ panfrost_create_compute_state(
struct pipe_context *pctx,
const struct pipe_compute_state *cso)
{
return mem_dup(cso, sizeof(*cso));
struct panfrost_shader_variants *so = CALLOC_STRUCT(panfrost_shader_variants);
so->cbase = *cso;
so->is_compute = true;
return so;
}
static void
+9 -1
View File
@@ -231,7 +231,15 @@ struct panfrost_shader_state {
/* A collection of varyings (the CSO) */
struct panfrost_shader_variants {
struct pipe_shader_state base;
/* A panfrost_shader_variants can represent a shader for
* either graphics or compute */
bool is_compute;
union {
struct pipe_shader_state base;
struct pipe_compute_state cbase;
};
struct panfrost_shader_state variants[MAX_SHADER_VARIANTS];
unsigned variant_count;