[Mesa-dev] [PATCH 00/21] ARB_sampler_object fixes and minor clean up

Pauli Nieminen pauli.nieminen at linux.intel.com
Sun Jun 10 23:59:43 PDT 2012


I noticed following issues when I was reading texture management code in
mesa core.

The first ycbcr unpack patch might be actually fixing deadcode. But I
don't know yet enough about unpack code to know for sure. But at least
glGetTexImage has special case get_tex_ycbcr.

Following TexImage changes aim to make driver interfaces easier to
understand by removing duplicate information. For me that makes a lot more
clearer what is expected to happen inside driver hook.

Most of changes are fixes issues were sampler state is read from
texture object while bound sampler object should be shadowing the texture
state. Those changes changes mesa code to use _mesa_get_samplerobj to
select sampler state.

Also I changes meta code to use sampler state to avoid possible issues that
we would have sampler object shadowing texture state when running meta
code. For that I needed to make ARB_sampler_object mandator extension for
all mesa drivers.

I didn't check bugzilla if there is any bugs reported about sampler objects
that could be fixed with these patches.

I run regression test for i965 (ILK), llvm pipe and r200. Nouveau changes
would still need testing and check from Nouveau developers to verify that
sampler state gets uploaded when when a new sampler object is bound. Piglit
ARB_sampler_object test should be enough to verify that.

Pauli Nieminen (21):
  mesa/format_unpack: Fix YCBCR unpack
  mesa: Remove unnecessary parameters from TexImage
  mesa: Remove unnecessary parameters from AllocTextureImageBuffer
  mesa: Remove unnecessary parameters CompressedTexImage
  mesa: Move DepthMode to texture object
  mesa/macros: Add ARRAY_SIZE helper macro core mesa
  mesa/samplerobj: Support EXT_texture_sRGB_decode
  mesa/samplerobj: Avoid crash in sampler query if texture unit is
    disabled
  nouveau: Add support for ARB_sampler_object
  radeon: Fix printf format not to warn in 64bit
  radeon&r200: Add support for ARB_shader_object
  mesa: Check index buffer offset in DrawElements
  mesa/ff_shader: Fix sampler state reading
  mesa/program: Use sampler object state if present
  mesa: Make ARB_sampler_objects mandator
  swrast: Support sampler object for texture fetching state
  mesa/samplerobj: Allow meta module to call sampler functions
  meta: Use sampler object for mipmap generation
  meta: texture rectangle textures may not have mipmaps
  meta: Add sampler object to texture decompression
  meta: Use sampler object in framebuffer blit

 src/mesa/drivers/common/meta.c                    |  134 ++--
 src/mesa/drivers/dri/i915/i915_texstate.c         |    2 +-
 src/mesa/drivers/dri/i965/brw_wm.c                |    2 +-
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c  |    2 +-
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c |    2 +-
 src/mesa/drivers/dri/intel/intel_context.h        |    3 +-
 src/mesa/drivers/dri/intel/intel_extensions.c     |    1 -
 src/mesa/drivers/dri/intel/intel_tex.c            |   10 +-
 src/mesa/drivers/dri/intel/intel_tex_image.c      |   23 +-
 src/mesa/drivers/dri/nouveau/nouveau_texture.c    |   23 +-
 src/mesa/drivers/dri/nouveau/nv04_state_tex.c     |   22 +-
 src/mesa/drivers/dri/nouveau/nv10_state_tex.c     |   23 +-
 src/mesa/drivers/dri/nouveau/nv20_state_tex.c     |   25 +-
 src/mesa/drivers/dri/r200/r200_tex.c              |   41 +-
 src/mesa/drivers/dri/r200/r200_tex.h              |    1 +
 src/mesa/drivers/dri/r200/r200_texstate.c         |    3 +-
 src/mesa/drivers/dri/radeon/radeon_blit.c         |    4 +-
 src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c  |   16 +-
 src/mesa/drivers/dri/radeon/radeon_screen.c       |    2 -
 src/mesa/drivers/dri/radeon/radeon_span.c         |    4 +-
 src/mesa/drivers/dri/radeon/radeon_tex.c          |   27 +-
 src/mesa/drivers/dri/radeon/radeon_tex.h          |    1 +
 src/mesa/drivers/dri/radeon/radeon_tex_copy.c     |    2 +-
 src/mesa/drivers/dri/radeon/radeon_texstate.c     |    4 +-
 src/mesa/drivers/dri/radeon/radeon_texture.c      |   38 +-
 src/mesa/drivers/dri/radeon/radeon_texture.h      |    4 +-
 src/mesa/main/api_validate.c                      |    3 +-
 src/mesa/main/attrib.c                            |    2 +-
 src/mesa/main/dd.h                                |    9 +-
 src/mesa/main/extensions.c                        |    2 +-
 src/mesa/main/ff_fragment_shader.cpp              |    5 +-
 src/mesa/main/format_unpack.c                     |  102 +--
 src/mesa/main/get.c                               |    7 +-
 src/mesa/main/macros.h                            |    3 +
 src/mesa/main/mipmap.c                            |    3 +-
 src/mesa/main/mtypes.h                            |    7 +-
 src/mesa/main/samplerobj.c                        |   66 +-
 src/mesa/main/samplerobj.h                        |   15 +-
 src/mesa/main/teximage.c                          |   13 +-
 src/mesa/main/texobj.c                            |    7 +-
 src/mesa/main/texparam.c                          |    8 +-
 src/mesa/main/texstate.c                          |    2 +-
 src/mesa/main/texstore.c                          |   17 +-
 src/mesa/main/texstore.h                          |    5 -
 src/mesa/main/version.c                           |    2 +-
 src/mesa/program/prog_statevars.c                 |    5 +-
 src/mesa/state_tracker/st_atom_texture.c          |    4 +-
 src/mesa/state_tracker/st_cb_texture.c            |   36 +-
 src/mesa/state_tracker/st_extensions.c            |    1 -
 src/mesa/swrast/s_atifragshader.c                 |    6 +-
 src/mesa/swrast/s_context.c                       |    4 +-
 src/mesa/swrast/s_context.h                       |    1 +
 src/mesa/swrast/s_fragprog.c                      |   17 +-
 src/mesa/swrast/s_span.c                          |    8 +-
 src/mesa/swrast/s_texcombine.c                    |   42 +-
 src/mesa/swrast/s_texfetch.c                      |   20 +-
 src/mesa/swrast/s_texfetch.h                      |    2 +-
 src/mesa/swrast/s_texfilter.c                     |  696 +++++++++++----------
 src/mesa/swrast/s_texture.c                       |   37 +-
 src/mesa/swrast/swrast.h                          |    7 +-
 src/mesa/tnl/t_vb_program.c                       |    4 +-
 61 files changed, 844 insertions(+), 743 deletions(-)

-- 
1.7.9.5



More information about the mesa-dev mailing list