[Mesa-dev] [PATCH 0/4] gallium: add new opcodes needed for ARB_gs5
Ilia Mirkin
imirkin at alum.mit.edu
Fri Apr 25 10:41:38 PDT 2014
This is enough to catch up to core mesa, with the exception of
uaddCarry/usubBorrow -- those will require some thought. I don't like the way
they were done in core mesa, so I may redo it differently. (Will start a
discussion on that topic after I've given it more thought.)
I ran the various piglit tests with
DRAW_USE_LLVM=0
GALLIUM_DRIVER=softpipe
MESA_EXTENSION_OVERRIDE=GL_ARB_gpu_shader5
after modifying them to require GLSL 1.40. (The extension requires GLSL 1.50
since it deals with GS stuff as well, but it doesn't matter for any of these
bits.)
It felt a bit weird to have to add the 4-source logic, but I'm not sure of a
better way of doing it. NVC0 has a BFI instruction that takes 3 arguments,
where the last 2 args are just mushed together into 1.
Also, ARB_gs5 only lets you have one offset/width setting for the entire
vector (for both BFI and BFE), but I didn't enforce that in the TGSI
version. (SM5 doesn't seem to make that restriction either.)
I'm working on a nvc0 impl for all this too, but wanted to send this out first
in case I messed something up and will have to change a bunch of things
around.
I figure there will later be a PIPE_CAP_SM5 that will be set if all of these
opcodes are supported (and it could subsume PIPE_CAP_TEXTURE_GATHER_SM5). For
now, there's too much of ARB_gs5 still unsupported to really worry about it.
Ilia Mirkin (4):
gallium: add new opcodes for ARB_gs5 bit manipulation support
glsl: fix bitfield_insert use when doing ldexp lowering
mesa/st: implement new bit manipulation opcodes
softpipe: add tgsi_exec support for new bit manipulation opcodes
src/gallium/auxiliary/tgsi/tgsi_exec.c | 188 +++++++++++++++++++++++++++++
src/gallium/auxiliary/tgsi/tgsi_info.c | 8 ++
src/gallium/auxiliary/util/u_math.h | 11 ++
src/gallium/docs/source/tgsi.rst | 51 ++++++++
src/gallium/include/pipe/p_shader_tokens.h | 11 +-
src/glsl/lower_instructions.cpp | 6 +-
src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 70 ++++++++---
7 files changed, 324 insertions(+), 21 deletions(-)
--
1.8.3.2
More information about the mesa-dev
mailing list