diff options
author | Rob Clark <[email protected]> | 2014-10-14 14:27:47 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2014-10-15 15:49:48 -0400 |
commit | d595987ea3d1706fecb9f6416031ec8b27c95a9e (patch) | |
tree | b82b1dc6c693884db8bdc3c43b2f9939b6a7a472 /src/gallium/drivers/freedreno/ir3 | |
parent | d5d80b37392c7f15c4fb39b6b1826230239930fd (diff) |
freedreno/a3xx: refactor/optimize emit
Because we reuse various bits of emit code (for state/vertex/prog/etc)
for both regular draws and internal draws (gmem<->mem, clear, etc), the
number of parameters getting passed around has been growing. Refactor
to group these into fd3_emit. This simplifies fxn signatures, avoids
passing around shader key on the stack, etc. It also gives us a nice
place to cache shader-variant lookup to avoid looking up shader variants
multiple times per draw (without having to *also* pass them around as
fxn args everywhere).
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3')
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3_shader.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_shader.h b/src/gallium/drivers/freedreno/ir3/ir3_shader.h index 04a737ef19d..c531ad704cc 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_shader.h +++ b/src/gallium/drivers/freedreno/ir3/ir3_shader.h @@ -52,11 +52,6 @@ static inline uint16_t sem2idx(ir3_semantic sem) /* Configuration key used to identify a shader variant.. different * shader variants can be used to implement features not supported * in hw (two sided color), binning-pass vertex shader, etc. - * - * TODO since shader key is starting to get larger (than 32bit) - * we probably should pass it around by ptr rather than value more - * of the places.. but watch out in ir3_shader_variant() where the - * key gets normalized, we need to make a copy there. */ struct ir3_shader_key { /* bitmask of sampler which needs coords clamped for vertex |