History log of /external/mesa3d/src/mesa/drivers/dri/i965/intel_tex_layout.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e7e81714f3ecf67a975d35e74bdb7fd15d924e4d 08-Nov-2011 Kenneth Graunke <kenneth@whitecape.org> i965: Implement the actual tables for texture alignment units [v2]

I implemented functions for horizontal/vertical alignment units separately
because I find it easier to read that way...especially with all the
corner-cases.

[chad] Corrected the vertical alignment calculation by checking for
depthstencil formats.

v2:
- Fix typos in intel_horizontal_texture_alignment_unit():
s/height/width/ and s/VALIGN/HALIGN.
- Remove special case for compressed formats in
intel_get_texture_alignment unit(). Compressed formats are already
handled in the halign and valign functions.
- Replace check ``_mesa_is_depth_format(...) ||
_mesa_is_depthstencil_format(...)`` with explcitit checks against
GL_DEPTH_COMPONENT and GL_DEPTH_STENCIL.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
017c13d55b5b086774d6afea2ca754482c624c6a 17-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Store miptree alignment units in the miptree

This allows us to replace all the calls to
intel_get_texture_alignment_unit() with a single call at miptree creation.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
d7b33309fe160212f2eb73f471f3aedcb5d0b5c1 15-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Kill intel_mipmap_level::nr_images [v4]

For all texture targets except GL_TEXTURE_CUBE_MAP, the 'nr_images' and
'depth' fields of intel_mipmap_level were identical. In the exceptional
case, nr_images == 6 and depth == 1.

It is simple to determine if a texture is a cube or not, so the presence
of two fields here was not helpful. Worse, it was confusing. When we
eventually implement GL_ARB_texture_cube_map_array, this mess would have
become even more confusing.

This patch removes 'nr_images' and assigns to 'depth' a consistent
meaning: depth is the number of 2D slices at each miplevel. The exact
semantics of depth varies according to the texture target:
- For GL_TEXTURE_CUBE_MAP, depth is 6.
- For GL_TEXTURE_2D_ARRAY, depth is the number of array slices. It is
identical for all miplevels in the texture.
- For GL_TEXTURE_3D, it is the texture's depth at each miplevel. Its
value, like width and height, varies with miplevel.
- For other texture types, depth is 1.

As a consequence, parameters were removed from the following function
signatures:
intel_miptree_set_level_info
Remove 'nr_images'.

i945_miptree_layout
brw_miptree_layout_texture
brw_miptree_layout_texture_array
Remove 'slices'.

v2:
- Replace "It's" with "Its".
- Remove all hunks in intel_fbo.c. The hunks were spurious and sneaked
in during a rebase.
- Remove unneeded hunk in intel_tex_map_image_for_swrast(). It was
a little refactor of the for-loop's upper bound.

v4:
In intel_miptree_get_image_offset(), document the conditions under
which different if-branches are taken.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
669f1822d2a60865514faf37f9fde21e4567b3d2 06-Sep-2011 Eric Anholt <eric@anholt.net> i965: Add support for GL_EXT_texture_array and GL_MESA_texture_array.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
36a91e45f755af164232ef908419bc4cb64ba45b 26-Aug-2011 Ian Romanick <ian.d.romanick@intel.com> intel: Silence several "warning: unused parameter"

The intel_context and tiling parameters were not used by any if the
i9[14]5_miptree_layout or the functions they call, and the tiling parameter was
not used by brw_miptree_layout. Remove the unnecessary parameters.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
b9fbb9df22ab8ef869730c8b5c1eb79f4f48038e 10-Jun-2011 Eric Anholt <eric@anholt.net> intel: Fix miptree height alignment for compressed NPOT textures.

This is effectively just "round up when dividing by 4" compared to the
previous code. Fixes the broken stripe at the top of
fbo-generatemipmap-formats GL_EXT_texture_compression_rgtc.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
56965aa007c2c6029204d617c0edcf142603e98d 10-Jun-2011 Eric Anholt <eric@anholt.net> intel: Drop dead preinitialization of align_w, align_h.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
4a60b0c8d2e4890038e1c6a72a7dac3b4cdf996e 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Add block alignment for RGTC textures.

We were using the default 4x2 alignment instead of the 4x4 required
for RGTC textures.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
5b3eb7538cd9ceb967b6e9e765896183e7c2c4d4 10-Jan-2011 Eric Anholt <eric@anholt.net> Revert "intel: Always allocate miptrees from level 0, not tObj->BaseLevel."

This reverts commit 7ce6517f3ac41bf770ab39aba4509d4f535ef663.
This reverts commit d60145d06d999c5c76000499e6fa9351e11d17fa.

I was wrong about which generations supported baselevel adjustment --
it's just gen4, nothing earlier. This meant that i915 would have
never used the mag filter when baselevel != 0. Not a severe bug, but
not an intentional regression. I think we can fix the performance
issue another way.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
7ce6517f3ac41bf770ab39aba4509d4f535ef663 06-Jan-2011 Eric Anholt <eric@anholt.net> intel: Always allocate miptrees from level 0, not tObj->BaseLevel.

BaseLevel/MaxLevel are mostly used for two things: clamping texture
access for FBO rendering, and limiting the used mipmap levels when
incrementally loading textures. By restricting our mipmap trees to
just the current BaseLevel/MaxLevel, we caused reallocation thrashing
in the common case, for a theoretical win if someone really did want
just levels 2..4 or whatever of their texture object.

Bug #30366
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
7d8f0fc28239c8023d2d44cbd4c979aa86c31873 29-Apr-2010 Eric Anholt <eric@anholt.net> i965: Fix cube map layouts on Ironlake.

We were doubling up the offsets for the mipmap levels for CPU access.
Instead of reimplementing i945_miptree_layout_2d with 6 cube images
separated by qpitch, share that function and provide the level offsets
later.

Fixes piglit cubemap and fbo-cubemap.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
362c1bf75eb74de5b4655c481b74f79718ed4a34 17-Mar-2010 Eric Anholt <eric@anholt.net> intel: Replace mt->pitch with mt->region->pitch.

The pitch is not really an inherent part of the miptree, since it's
not part of any of the layout calculations, and it's dictated by the
libdrm-allocated region pitch now.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
2995bf0d68f1b28ba68b81e9dc79e3ab52bc2795 13-Jul-2009 Xiang, Haihao <haihao.xiang@intel.com> i965: add support for new chipsets

1. new PCI ids
2. fix some 3D commands on new chipset
3. fix send instruction on new chipset
4. new VUE vertex header
5. ff_sync message (added by Zou Nan Hai <nanhai.zou@intel.com>)
6. the offset in JMPI is in unit of 64bits on new chipset
7. new cube map layout
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
38eddf04ed04966db09b67de4cdabef681dc2696 06-Jun-2009 Eric Anholt <eric@anholt.net> intel: Remove an unneeded hunk that slipped in with texture tiling.

intel_miptree_pitch_align does this later on.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
1ba96651e12b3c74fb9c8f5a61b183ef36a27b1e 03-Jun-2009 Eric Anholt <eric@anholt.net> intel: Add support for tiled textures.

This is about a 30% performance win in OA with high settings on my GM45,
and experiments with 915GM indicate that it'll be around a 20% win there.
Currently, 915-class hardware is seriously hurt by the fact that we use
fence regs to control the tiling even for 3D instructions that could live
without them, so we spend a bunch of time waiting on previous rendering in
order to pull fences off. Thus, the texture_tiling driconf option defaults
off there for now.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
ecadb51bbcb972a79f3ed79e65a7986b9396e757 18-Sep-2008 Brian Paul <brian.paul@tungstengraphics.com> mesa: added "main/" prefix to includes, remove some -I paths from Makefile.template
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
a183efc132c8db1bb42525ac177ffff96f69a59b 18-Dec-2007 Keith Packard <keithp@keithp.com> [Intel] Centralize mipmap pitch computations.

mipmap pitches must account for the device alignment requirements, which
used to be fairly simple; just align to a 4-byte boundary. However, to allow
textures to be drawn to under TTM, they now need to be aligned to a 64-byte
boundary. Placing all of the alignment constraints in a single function
allows this new constraint to be applied uniformly.

There was some pitch constraining code in intel_miptree_create, but that was
modifying the pitch long after the miptree had been layed out, so it only
served to wreck the mipmap and cause rendering errors.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
4599683b480d295e407725e0fe99c357a0086092 08-Oct-2007 Sergio Monteiro Basto <sergio@sergiomb.no-ip.org> i915: Fix undefined ALIGN symbol from 77e0523fb7769df4bf43747e136b1653b2421b97.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
77e0523fb7769df4bf43747e136b1653b2421b97 04-Oct-2007 Eric Anholt <eric@anholt.net> [965] Replace various alignment code with a shared ALIGN() macro.

In the process, fix some alignment issues:
- Scratch space allocation was aligned into units of 1KB, while the allocation
wanted units of bytes, so we never allocated enough space for scratch.
- GRF register count was programmed as ALIGN(val - 1, 16) / 16 instead of
ALIGN(val, 16) / 16 - 1, which overcounted for val != 16n+1.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
8ea66fa2ec9eeb6a7e869ff08d713f5e77d795e0 10-Aug-2007 Xiang, Haihao <haihao.xiang@intel.com> i965/i915tex: applying right alignment to compressed texture,
which make small textures(4x4,2x2,1x1) work well.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
eb6418b8952f335b6cf58232b5f282fc3e325c7a 19-May-2007 Roland Scheidegger <sroland@tungstengraphics.com> fix miptree layout (i915) for small compressed mipmaps

This seems to work now. Also fix i945 set_level_info, need to match i915
behaviour for storing mip height, as it's assumed to be the mip width
(in texels) elsewhere and the division by 4 is done later (untested).
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
fde908444af5c826bce84203a9cb4273d8341ed0 14-Dec-2006 Michel Dänzer <michel@tungstengraphics.com> Fix copy-and-paste-o of my e-mail address.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
81855f22cd8d8df5bd96fdbd76ff975b6cf4150b 14-Dec-2006 Michel Dänzer <michel@tungstengraphics.com> Fix some corner cases in i945_miptree_layout_2d().

Based on a patch from Keith Whitwell, with some further fixes.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c
3416ef303af633668cece0b199b4a8b2388c1e2f 14-Dec-2006 Michel Dänzer <michel@tungstengraphics.com> Share code to lay out >= 945 style 2D mipmaps between i915tex and i965 drivers.

Use the i965 version as it has some fixes over the i915tex version.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_tex_layout.c