Mesa (gallium-gpu4-texture-opcodes): gallium: Replace texture target with resource operand in TGSI texture opcodes.

Michał Król michal at kemper.freedesktop.org
Sat Jan 9 20:11:51 UTC 2010


Module: Mesa
Branch: gallium-gpu4-texture-opcodes
Commit: 50d0620db207d7650ccee0ba87e4d8f909aa30c5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=50d0620db207d7650ccee0ba87e4d8f909aa30c5

Author: Michal Krol <michal at vmware.com>
Date:   Sat Jan  9 21:09:51 2010 +0100

gallium: Replace texture target with resource operand in TGSI texture opcodes.

Instead of specifying a texture target for texture instructions:

  TEX OUT[0], IN[0], SAMP[0], 2D

one declares a resource register and then uses it to access textures:

  DCL RES[0], 2D
  ...
  TEX OUT[0], RES[0], IN[0], SAMP[0]

The resource index (not sampler index) is used to select a texture
to be accessed. Texture target is taken from resource's declaration.

This change allows us to separate samplers from textures, something
that is needed by OpenCL.

Fixed most of the tree, didn't compile-test gallium drivers. The 965
driver hasn't been touched at all -- will need help fixing that one.

---

 src/gallium/auxiliary/draw/draw_pipe_aaline.c    |   71 ++++++++----
 src/gallium/auxiliary/draw/draw_pipe_pstipple.c  |   56 ++++++---
 src/gallium/auxiliary/tgsi/tgsi_build.c          |   91 +++++++--------
 src/gallium/auxiliary/tgsi/tgsi_build.h          |   18 ++--
 src/gallium/auxiliary/tgsi/tgsi_dump.c           |   13 +-
 src/gallium/auxiliary/tgsi/tgsi_dump_c.c         |   16 ---
 src/gallium/auxiliary/tgsi/tgsi_exec.c           |  107 ++++++++++--------
 src/gallium/auxiliary/tgsi/tgsi_exec.h           |    3 +
 src/gallium/auxiliary/tgsi/tgsi_info.c           |   11 +-
 src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h     |   31 ++----
 src/gallium/auxiliary/tgsi/tgsi_parse.c          |    8 +-
 src/gallium/auxiliary/tgsi/tgsi_parse.h          |    5 +-
 src/gallium/auxiliary/tgsi/tgsi_sse2.c           |   67 +++++++-----
 src/gallium/auxiliary/tgsi/tgsi_text.c           |  102 +++++++++--------
 src/gallium/auxiliary/tgsi/tgsi_ureg.c           |  133 +++++++++++-----------
 src/gallium/auxiliary/tgsi/tgsi_ureg.h           |   82 ++++----------
 src/gallium/auxiliary/util/u_simple_shaders.c    |   10 ++-
 src/gallium/auxiliary/vl/vl_compositor.c         |    8 +-
 src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c |   55 ++++++---
 src/gallium/auxiliary/vl/vl_shader_build.c       |   41 ++-----
 src/gallium/auxiliary/vl/vl_shader_build.h       |   11 +--
 src/gallium/drivers/cell/ppu/cell_gen_fp.c       |   16 ++-
 src/gallium/drivers/cell/spu/spu_exec.c          |   67 +++++++-----
 src/gallium/drivers/cell/spu/spu_exec.h          |    2 +
 src/gallium/drivers/i915/i915_fpc.h              |    2 +
 src/gallium/drivers/i915/i915_fpc_translate.c    |   12 +-
 src/gallium/drivers/llvmpipe/lp_bld_tgsi_soa.c   |   18 ++-
 src/gallium/drivers/nv30/nv30_fragprog.c         |    8 +-
 src/gallium/drivers/nv40/nv40_fragprog.c         |    8 +-
 src/gallium/drivers/nv50/nv50_program.c          |   34 +++---
 src/gallium/drivers/r300/r300_tgsi_to_rc.c       |   27 +++--
 src/gallium/drivers/r300/r300_tgsi_to_rc.h       |    2 +
 src/gallium/drivers/svga/svga_tgsi_insn.c        |   32 +++---
 src/gallium/include/pipe/p_shader_tokens.h       |   44 ++++----
 src/gallium/include/pipe/p_state.h               |    1 +
 35 files changed, 628 insertions(+), 584 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=50d0620db207d7650ccee0ba87e4d8f909aa30c5



More information about the mesa-commit mailing list