diff options
author | Dave Airlie <[email protected]> | 2015-11-30 10:45:19 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2015-12-07 09:58:59 +1000 |
commit | b1da110b71b20509e4689475e82e88750f69b8fc (patch) | |
tree | 078bd6fd8dd3b5ce39ba61d270d957c2892142de /src/gallium/drivers/r600/r600_shader.h | |
parent | a131ac73e6e653962723669dd5403fff061aa90f (diff) |
r600: add shader key entries for tcs and tes.
with tessellation vs can now run on ls, and tes can
run on vs or es, tcs runs on hs.
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_shader.h')
-rw-r--r-- | src/gallium/drivers/r600/r600_shader.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_shader.h b/src/gallium/drivers/r600/r600_shader.h index 2040f732bf5..398e7da7666 100644 --- a/src/gallium/drivers/r600/r600_shader.h +++ b/src/gallium/drivers/r600/r600_shader.h @@ -30,6 +30,16 @@ extern "C" { #endif +/* Valid shader configurations: + * + * API shaders VS | TCS | TES | GS |pass| PS + * are compiled as: | | | |thru| + * | | | | | + * Only VS & PS: VS | -- | -- | -- | -- | PS + * With GS: ES | -- | -- | GS | VS | PS + * With Tessel.: LS | HS | VS | -- | -- | PS + * With both: LS | HS | ES | GS | VS | PS + */ struct r600_shader_io { unsigned name; @@ -86,7 +96,10 @@ struct r600_shader { unsigned max_arrays; unsigned num_arrays; unsigned vs_as_es; + unsigned vs_as_ls; unsigned vs_as_gs_a; + unsigned tes_as_es; + unsigned tcs_prim_mode; unsigned ps_prim_id_input; struct r600_shader_array * arrays; @@ -102,8 +115,15 @@ union r600_shader_key { struct { unsigned prim_id_out:8; unsigned as_es:1; /* export shader */ + unsigned as_ls:1; /* local shader */ unsigned as_gs_a:1; } vs; + struct { + unsigned as_es:1; + } tes; + struct { + unsigned prim_mode:3; + } tcs; }; struct r600_shader_array { |