[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:10 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.
I also noticed size check for indices omitting the offset paramater bassed
to glDrawElements call.
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: Check index buffer offset in DrawElements
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/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