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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev