History log of /external/mesa3d/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e87174cf4b499c8e9558438e70b0da5f0f38f54a 16-Aug-2012 Paul Berry <stereotype441@gmail.com> i965/blorp: Thread level and layer through brw_blorp_blit_miptrees().

Previously, when performing a blit using the blorp engine, we failed
to account for the level and layer of the source and destination. As
a result, all blits would occur between miplevel 0 and layer 0 of the
corresponding textures, regardless of which level/layer was bound to
the framebuffer.

This patch passes the correct level and layer through
brw_blorp_miptrees() into the brw_blorp_blit_params data structure.

Further patches in the series will adapt
gen{6,7}_blorp_emit_surface_state to make use of these parameters.

Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 3123f0621561549c4566248100661ef77cab2834)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
5db1deab5118a986167ea6e8f8c7c196c74457c1 04-Sep-2012 Paul Berry <stereotype441@gmail.com> i965/gen6+: Adjust stencil buffer size after computing miptree layout.

Since Gen6+ stencil buffers use W-tiling (a tiling arrangement which
drm and the kernel are not aware of) we need to round up the width and
height of a stencil buffer to multiples of the W-tile size (64x64)
before allocating a stencil buffer. Previously, we rounded up the
size of the base miplevel, and then computed the miptree layout based
on the rounded up size. This was incorrect, because it meant that the
total size of the miptree would not be properly W-tile aligned, and
therefore we would not always allocate enough pages.

(Note: even though the GL API doesn't allow creation of mipmapped
stencil textures, it does allow mipmapping of a combined depth/stencil
texture, and on Gen6+, a combined depth/stencil texture is internally
implemented as a pair of separate depth and stencil buffers.)

For example, on Sandy Bridge, when allocating a mipmapped stencil
texture of size 128x128, we would first round up to the nearest
multiple of 64x64 (causing no change to the size), and then compute
the miptree layout (whose size worked out to 128x196). Then we would
request an allocation of 128*196 bytes (6.125 pages), causing 7 pages
to be allocated to the texture. However, the texture needs 8 pages,
since each W-tile occupies a page, and it takes 2 W-tiles to cover a
width of 128 and 4 W-tiles to cover a height of 196.

This patch changes the order of operations so that the miptree layout
is computed first and then the total size of the miptree is rounded up
to be W-tile aligned.

NOTE: This is a candidate for the 8.0 release branch.

Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit bde833c9d014ad8aebfab0d2285184d7e6d5896d)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
6cb9e99a757bd5a9d908ed6c5515a9ae5fb041ba 09-Aug-2012 Chad Versace <chad.versace@linux.intel.com> intel: Always downsample in intel_miptree_map_multisample

Always downsample before mapping, even if the map mode contains
GL_MAP_INVALIDATE_RANGE_BIT. If we neglect to downsample when only
a subrect is mapped then the upsample in intel_miptree_unmap_multisample
may write garbage to the region outside the subrect.

(Eric gave my patch e88cfbb a conditional reviewed-by with the condition
that it always downsample before mapping. I forgot to make that change
before pushing the patch.)

Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
e88cfbb95f631ca1275a5cef4ccc5aaffb70aaba 28-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Support mapping multisample miptrees

Add two new functions: intel_miptree_{map,unmap}_multisample, to which
intel_miptree_{map,unmap} dispatch. Only mapping flat, renderbuffer-like
miptrees are supported.

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_mipmap_tree.c
4c0ccc13bd3ec149c4a51c4937811894fbe713f0 28-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Refactor use of intel_miptree_map

Move the opencoded construction and destruction of intel_miptree_map into
new functions, intel_miptree_attach_map and intel_miptree_release_map.
This patch prevents code duplication in a future commit that adds support
for mapping multisample miptrees.

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_mipmap_tree.c
81980958d0d3def26741cfe78b7c23f6635f826a 28-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Refactor intel_miptree_map/unmap

Move the body of intel_miptree_map into a new function,
intel_miptree_map_singlesample. Now intel_miptree_map dispatches to the
new function. A future commit adds a multisample variant.

Ditto for intel_miptree_unmap.

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_mipmap_tree.c
d3746354fbfadf821dc108e072d86b5329737444 12-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Define functions for up/downsampling on miptrees

Flesh out the stub functions intel_miptree_{up,down}sample.

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_mipmap_tree.c
f4873babdc27f697df9f4642209eca21a02ac476 19-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Allocate miptree for multisample DRI2 buffers

Immediately after obtaining, with DRI2GetBuffersWithFormat, the DRM buffer
handle for a DRI2 buffer, we wrap that DRM buffer handle with a region and
a miptree. This patch additionally allocates an accompanying multisample
miptree if the DRI2 buffer is multisampled.

Since we do not yet advertise multisample GL configs, the code for
allocating the multisample miptree is currently inactive.

This patch adds the following fields to intel_mipmap_tree:
singlesample_mt
needs_downsample
and the following function stubs:
intel_miptree_downsample
intel_miptree_upsample

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_mipmap_tree.c
4eba67285fb6b5d2dd4927e8dc4b3e2945435309 20-Jul-2012 Chad Versace <chad.versace@linux.intel.com> intel: Refactor creation of hiz and mcs miptrees

Move the logic for creating the ancillary hiz and mcs miptress for winsys
and non-texture renderbuffers from intel_alloc_renderbuffer_storage to
intel_miptree_create_for_renderbuffer. Let's try to isolate complex
miptree logic to intel_mipmap_tree.c.

Without this refactor, code duplication would be required along the
intel_process_dri2_buffer codepath in order to create the mcs miptree.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
97fc89c6cbaa3b5ef7f678d2dc2c7d5bbba05315 27-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Treat GL_SAMPLES=1 as equivalent to GL_SAMPLES=0.

EXT_framebuffer_multisample is a required subpart of
ARB_framebuffer_object, which means that we must support it even on
platforms that don't support MSAA. Fortunately
EXT_framebuffer_multisample allows for this by allowing GL_MAX_SAMPLES
to be set to 1.

This leads to a tricky quirk in the GL spec: since
GlRenderbufferStorageMultisamples() accepts any value for its
"samples" parameter up to and including GL_MAX_SAMPLES, that means
that on platforms that don't support MSAA, GL_SAMPLES is allowed to be
set to either 0 or 1. On platforms that do support MSAA, GL_SAMPLES=1
is not used; 0 means no MSAA, and 2 or higher means MSAA.

In other words, GL_SAMPLES needs to be interpreted as follows:
=0 no MSAA (possible on all platforms)
=1 no MSAA (only possible on platforms where MSAA unsupported)
>1 MSAA (only possible on platforms where MSAA supported)

This patch modifies all MSAA-related code to choose between
multisampling and single-sampling based on the condition (GL_SAMPLES >
1) instead of (GL_SAMPLES > 0) so that GL_SAMPLES=1 will be treated as
"no MSAA".

Note that since GL_SAMPLES=1 implies GL_SAMPLE_BUFFERS=1, we can no
longer use GL_SAMPLE_BUFFERS to distinguish between MSAA and non-MSAA
rendering.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
ee9f6a34ccf7f51111b21bba8d8f9d03cc0a2c74 26-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Use MESA_FORMAT_R8 for MCS buffer.

No functional change. This patch modifies intel_miptree_alloc_mcs to
allocate the 4x MCS buffer using MESA_FORMAT_R8 instead of
MESA_FORMAT_A8. In principle it doesn't matter, since we only access
the buffer using MCS-specific hardware mechanisms, so all that's
important is to use a format with the correct size. However,
MESA_FORMAT_A8 has enough unusual behaviours that it seems prudent to
avoid it.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
728561271303baa6aaeb5bdd953e62b117feba4d 18-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Adjust MCS buffer allocation for 8x MSAA.

MCS buffers use 32 bits per pixel in 8x MSAA, and 8 bits per pixel in
4x MSAA. This patch adjusts the format we use to allocate the buffer
so that enough memory is set aside for 8x MSAA.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
8b762ebd72c1bb1a9827a667ad55ba9516505adf 22-Jul-2012 Brian Paul <brianp@vmware.com> mesa: move some format helper functions to glformats.c
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
a5a34b153d494ad4374e7b2c8ea13b1073a887e2 19-Jun-2012 Chad Versace <chad.versace@linux.intel.com> intel: Enable GL_OES_compressed_ETC1_RGB8_texture

Enable it for all hardware.

No current hardware supports ETC1, so this patch implements it by
translating the ETC1 data to RGBX data during the call to
glCompressedTexImage2D(). For details, see the doxygen for
intel_mipmap_tree::wraps_etc1.

Passes the Piglit test spec/OES_compressed_ETC1_RGB8_texture/miptree and
the ETC1 test in the GLES2 conformance suite.

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_mipmap_tree.c
33202b4876a88b6f54ca7022eadd2875a2d3508a 06-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Enable CMS layout on Gen7 for the formats that support it.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
ccae1b1cd7b89102a9d9bfc29eb1e7e48aad8969 03-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Allocate MCS buffer when CMS MSAA is in use.

To implement Gen7's CMS MSAA layout, we need an extra buffer, the MCS
(Multisample Control Surface) buffer. This patch introduces code for
allocating and deallocating the buffer, and storing a pointer to it in
the intel_mipmap_tree struct.

No functional change, since the CMS layout is not enabled yet.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
1bd4d456cdecf7bea55f4e3dac574af54efad994 04-Jul-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Add an enum to describe MSAA layout.

From the Ivy Bridge PRM, Vol 1 Part 1, p112:

There are three types of multisampled surface layouts designated
as follows:
- IMS Interleaved Multisampled Surface
- CMS Compressed Mulitsampled Surface
- UMS Uncompressed Multisampled Surface

Previously, the i965 driver only used IMS and UMS formats, and
distinguished beetween them using the boolean
intel_mipmap_tree::msaa_is_interleaved. To facilitate adding support
for the CMS format, this patch replaces that boolean (and other
booleans derived from it) with an enum
INTEL_MSAA_LAYOUT_{IMS,CMS,UMS}. It also updates the terminology used
in comments throughout the driver to match the IMS/CMS/UMS terminology
used in the PRM. CMS layout is not yet used.

The enum has a fourth possible value, INTEL_MSAA_LAYOUT_NONE, which is
used for non-multisampled surfaces.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
02ebad900db4ef1ac42cbfb41b433919a4c857a2 05-Jul-2012 Kristian Høgsberg <krh@bitplanet.net> intel: Add offset field to miptree

This lets us specify an offset into the bo where the miptree starts,
which will let us set up a texture for a single plane in a planar buffer.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
455ac562722f60ac9fb0c3d3c697fa339fa011ad 08-May-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Properly handle sliced layout for Gen7.

Starting in Gen7, there are two possible layouts for MSAA surfaces:

- Interleaved, in which additional samples are accommodated by scaling
up the width and height of the surface. This is the only layout
available in Gen6. On Gen7 it is used for depth and stencil
surfaces only.

- Sliced, in which the surface is stored as a 2D array, with array
slice n containing all pixel data for sample n. On Gen7 this layout
is used for color surfaces.

The "Sliced" layout has an additional requirement: it must be used in
ARYSPC_LOD0 mode, which means that the surface doesn't leave any extra
room between array slices for miplevels other than 0.

This patch modifies the surface allocation functions to use the
correct layout when allocating MSAA surfaces in Gen7, and to set the
array offsets properly when using ARYSPC_LOD0 mode. It also modifies
the code that populates SURFACE_STATE structures to ensure that
ARYSPC_LOD0 mode is selected in the appropriate circumstances.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
52fcc36f11b12236eb4f960b65b17b047cf32efa 11-May-2012 Paul Berry <stereotype441@gmail.com> i965/msaa: Expand odd-sized MSAA surfaces to account for interleaving pattern.

Gen6 MSAA buffers (and Gen7 MSAA depth/stencil buffers) interleave
MSAA samples in a complex pattern that repeats every 2x2 pixel block.
Therefore, when allocating an MSAA buffer, we need to make sure to
allocate an integer number of 2x2 blocks; if we don't, then some of
the samples in the last row and column will be cut off.

Fixes piglit tests "EXT_framebuffer_multisample/unaligned-blit {2,4}
color msaa" on i965/Gen6.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
54308f78a2f8675bfd854761f9cd8a6b71e119d0 21-May-2012 Eric Anholt <eric@anholt.net> i965: Drop a layer of indirection in doing HiZ resolves.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
072634da4a6ee5eafb5f5df26ca5f988209e6d40 21-May-2012 Eric Anholt <eric@anholt.net> i965: Replace intel_need_resolve with the hiz ops it maps to.

Having this enum separate caused us to need a bunch of helper
functions to translate to the op to be executed.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
19e9b24626c2b9d7abef054d57bb2a52106c545b 30-Apr-2012 Paul Berry <stereotype441@gmail.com> i965/gen6: Initial implementation of MSAA.

This patch enables MSAA for Gen6, by modifying intel_mipmap_tree to
understand multisampled buffers, adapting the rendering pipeline setup
to enable multisampled rendering, and adding multisample resolve
operations to brw_blorp_blit.cpp. Some preparation work is also
included for Gen7, but it is not yet enabled.

MSAA support is still fairly preliminary. In particular, the
following are not yet supported:
- Fully general blits between MSAA and non-MSAA buffers.
- Formats other than RGBA8, DEPTH24, and STENCIL8.
- Centroid interpolation.
- Coverage parameters (glSampleCoverage, GL_SAMPLE_ALPHA_TO_COVERAGE,
GL_SAMPLE_ALPHA_TO_ONE, GL_SAMPLE_COVERAGE, GL_SAMPLE_COVERAGE_VALUE,
GL_SAMPLE_COVERAGE_INVERT).

Fixes piglit tests "EXT_framebuffer_multisample/accuracy" on
i965/Gen6.

v2:
- In intel_alloc_renderbuffer_storage(), quantize the requested number
of samples to the next higher sample count supported by the
hardware. This ensures that a query of GL_SAMPLES will return the
correct value. It also ensures that MSAA is fully disabled on Gen7
for now (since Gen7 MSAA support doesn't work yet).
- When reading from a non-MSAA surface, ensure that s_is_zero is true
so that we won't try to read from a nonexistent sample.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
a27c7d80afc3160a0face4b8781bf921229bc3cc 06-Apr-2012 Paul Berry <stereotype441@gmail.com> i965: Stop lying about cpp and height of a stencil buffer.

When using a separate stencil buffer, i965 requires that the pitch of
the buffer (in the 3DSTATE_STENCIL_BUFFER command) be specified as 2x
the actual pitch.

Previously this was accomplished by doubling the "cpp" and "pitch"
values stored in the intel_region data structure, and halving the
height. However, this was confusing, and it led to a subtle (but
benign) bug: since a stencil buffer is W-tiled, its true height must
be aligned to a multiple of 64; we were accidentally aligning its faux
height to a multiple of 64, causing memory to be wasted.

Note that for window system stencil buffers, the DDX also doubles the
cpp and pitch values. To facilitate fixing this DDX server bug in the
future, we fix the cpp and pitch values we receive from the X server
only if cpp has the "incorrect" value of 2.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>

v2: Clarify comments about the DDX.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
cdcfd5d1d60179e60e3a0a47dda71bfe91083105 27-Feb-2012 Anuj Phogat <anuj.phogat@gmail.com> intel: Fix a case when mapping large texture fails

This patch handles a case when mapping a large texture fails
in drm_intel_gem_bo_map_gtt(). These changes avoid assertion
failure later in the driver as reported in following bugs:

https://bugs.freedesktop.org/show_bug.cgi?id=44970
https://bugs.freedesktop.org/show_bug.cgi?id=46303

Testing: No regressions in piglit quick.tests

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
f172eae8b23d0612865895c52af745021ae20a4c 02-Mar-2012 Daniel Vetter <daniel.vetter@ffwll.ch> i965: fixup W-tile offset computation to take swizzling into account

There's even a comment in the code containing the right swizzling
computations!

Previously this has not been noticed because we need to manually
enabled swizzling on snb/ivb (kernel 3.4 will do that) and we
don't use the separate stencil on ilk (where the bios enables
swizzling). This fixes

piglit ./bin/fbo-stencil readpixels GL_DEPTH32F_STENCIL8 -auto

on recent drm-intel-next kernels.

Also remove the comment about ivb, it's stale now.

Swizzling detection is done by allocating a temporary x-tiled
buffer object. Unfortunately kernels before v3.2 lie on snb/ivb
because they claim that swizzling is enable, but it isn't. The
kernel commit that fixes this for backport to pre-v3.2 is

commit acc83eb5a1e0ae7dbbf89ca2a1a943ade224bb84
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Mon Sep 12 20:49:16 2011 +0200

drm/i915: fix swizzling on gen6+

But if the kernel doesn't lie, this now works on swizzling and
not swizzling machines.

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
84e5f1c635899c657da58ca51d5e841354e9de9c 01-Feb-2012 Eugeni Dodonov <eugeni.dodonov@intel.com> intel: check for LLC support when reading maps

This checks for advertised LLC support by the GPU instead of relying on
the GPU generation for detection.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
7e08bf08d13228001f6306800b5bd69b89b1bb6f 27-Dec-2011 Chad Versace <chad.versace@linux.intel.com> i965: Fix gen6,gen7 when used with a non-HiZ capable DDX

Nothing works if HiZ is enabled and the DDX is incapable of HiZ (that is,
the DDX version is < 2.16).

The problem is that the refactoring that eliminated
intel_renderbuffer::stencil_rb broke the recovery path in
intel_verify_dri2_has_hiz(). Specifically, it broke line
intel_context.c:1445, which allocates the region for
DRI_BUFFER_DEPTH_STENCIL. That allocation was creating a separate stencil
miptree, despite the buffer being a packed depthstencil buffer. Havoc
ensued.

This patch introduces a bool flag that prevents allocation of that stencil
miptree.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44103
Tested-by: Ian Romanick <idr@freedesktop.org>
Note: This is a candidate for the 8.0 branch.
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
a0a0a909f21acfcddaab603079ba98266e8daf0e 05-Jan-2012 Kenneth Graunke <kenneth@whitecape.org> i965: Fix infinite loop regression in intel_miptree_all_slices_resolve.

Commit 0ed11e333147e280208d9d0b3ff3f39970547643 fixed a "use after free"
bug by getting the next pointer before deleting the current node.

Unfortunately, it also made "next" never get updated if i->need != need.

Fixes infinite loops in piglit tests fbo-depth-array and fbo-depthtex.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
0ed11e333147e280208d9d0b3ff3f39970547643 04-Jan-2012 Anuj Phogat <anuj.phogat@gmail.com> Fix read from pointer after free

Coverity reported a read from pointer after free defect in
src/mesa/drivers/dri/intel/intel_mipmap_tree.c. Bug# 44205
In intel_miptree_all_slices_resolve() function, i = i->next was
executing after freeing i. I have defined a temporary variable
(next) to store the value of i->next before freeing i

Reported-by: Vinson Lee <vlee@vmware.com>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
747f0307626ef5bcf2f889ab66bcc95ab8eda2c8 27-Dec-2011 Chad Versace <chad.versace@linux.intel.com> intel: Fix memory leak in intel_miptree_create()

On failure, intel_miptree_create() needs to *release* the miptree, not
just free it, so that the stencil_mt gets released too.

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_mipmap_tree.c
7f854a5028ef00a0e041e78a770456204dc58eef 16-Dec-2011 Eric Anholt <eric@anholt.net> intel: Fix performance regression in Lightsmark since HiZ changes.

Since the refactor in d7b33309fe160212f2eb73f471f3aedcb5d0b5c1, depth
in the miptree changed from 1 to 6, so we always decided it didn't
match, and we would relayout to something that would still not
"match".

Improves performance 23.8% (+/- 1.1%, n=4)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43329
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
ab7794cada02f3b3b5e3a642c20eeedeb17b65a6 22-Dec-2011 Eric Anholt <eric@anholt.net> intel: Don't consider miptrees for other texture targets to match.

We would have done a relayout at validate time, but it's senseless to
store into a miptree if it's going to force relayout.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
4790c4ae2489b8c72e6d98f3f80b5a9e7f799203 07-Dec-2011 Eric Anholt <eric@anholt.net> i965: Add separate stencil/HiZ setup for MESA_FORMAT_Z32_FLOAT_X24S8.

This is a little more unusual than the separate MESA_FORMAT_S8_Z24
support, because in addition to storing the real stencil data in a
MESA_FORMAT_S8 miptree, we also make the Z miptree be
MESA_FORMAT_Z32_FLOAT instead of the requested format.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
353f7ba4abbfd15d1e4e4b7a38f88e64ce85f6a2 03-Dec-2011 Eric Anholt <eric@anholt.net> i965: Add support for mapping Z32_FLOAT_X24S8 fake packed depth/stencil.

The format handling here is tricky, because we're not actually
generating a Z32_FLOAT_X24S8 miptree, so we're guessing the format
that GL wants based on seeing Z32_FLOAT with a separate stencil.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
fdf18b323156098ba5fb2881aa1a7888d2e0667f 15-Dec-2011 Eric Anholt <eric@anholt.net> i965: Properly demote the depth mt format for fake packed depth/stencil.

gen7 only supports the non-packed formats, even if you associate a
real separate stencil buffer -- otherwise it's as if the depth test
always fails.

This requires a little bit of care in the match_texture_image case,
since the miptree format no longer matches the texture image format.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
f22068d5be7c829d3768154845ef3c5a2986fed4 08-Dec-2011 Eric Anholt <eric@anholt.net> intel: Move S8 width/height alignment to miptree creation.

We were doing it in the caller in the renderbuffer code, but it was
missed in the separate stencil creation for textures. Apparently our
testing was using renderbuffers or pre-aligned sizes.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
5655ebf4664b2e9a50b976612f8a1aeb26275311 30-Nov-2011 Eric Anholt <eric@anholt.net> intel: Add support for LLC-cached reads of X-tiled miptrees using a blit.

This mimics the MapRenderbuffer code, and should improve the
performance of glGetTexImage().

v2: Fix broken error handling.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
ed3aeb56ec3fde24c2fc69515c0b5d348b41caf3 30-Nov-2011 Eric Anholt <eric@anholt.net> intel: Make the fake packed depth/stencil mappings use a cached temporary.

Before, we had an uncached read of S8 to untile, then a RMW (so
uncached penalty) of the packed S8Z24 to store the value, then the
consumer would uncached read that once per pixel. If data was written
to the map, we would then have to uncached read the written data back
out and do the scatter to the tiled S8 buffer (also uncached access
penalties, since WC couldn't actually combine). So 3 or 5 uncached
accesses per pixel in the ROI (and we we were ignoring the ROI, so it
was the whole image).

Now we get an uncached read of S8 to untile, and an uncached read of
Z. The consumer gets to do cached accesses. Then if data was
written, we do streaming Z writes (WC success), and scattered S8
tiling writes (uncached penalty). So 2 or 3 uncached accesses per
pixel in the ROI.

This should be a performance win, to the extent that anybody is doing
software accesses of packed depth/stencil buffers.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
b48c3bca87b30003f9e117d299011380e743aec9 29-Nov-2011 Eric Anholt <eric@anholt.net> intel: Move separate-stencil s8 mapping logic to intel_miptree_map.

We're going to want to reuse this logic in mapping of fake packed
miptrees wrapping separate depth/stencil miptrees.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
baeaa062e92afbec47fad73fd3d464a1e7d1fe08 29-Nov-2011 Eric Anholt <eric@anholt.net> intel: Move the gtt-particular texture mapping logic to a helper function.

This code will be incrementally moving to a model like intel_fbo.c's
renderbuffer mapping with helper functions, as I move that code here.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
221a36514b4ecffdaa3be5c43e67c75cc8c30ab8 28-Nov-2011 Eric Anholt <eric@anholt.net> intel: Make mapping of texture slices track the region of interest.

This will be used for things like packed depth/stencil temporaries and
making LLC-cached temporary mappings using blits.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
b75291c61c40a3a690b08f8aa013ad2d3d2deda8 28-Nov-2011 Eric Anholt <eric@anholt.net> intel: Move the teximage mapping logic to a miptree level/slice mapping.

This will let us share teximage mapping logic with renderbuffer
mapping, which has an intel_mipmap_tree but not a gl_texture_image.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
5c9a55665d78b96bfb8ce8eab43b5558dd656a6d 30-Nov-2011 Eric Anholt <eric@anholt.net> intel: Only prefer separate stencil when we can do HiZ.

This required is_hiz_depth_format to start returning true on S8_Z24 as
well, since that's the format we have here. The two previous callers
are only calling it on non-depthstencil formats.

This avoids us needing to have HiZ working on a new Z format
immediately upon exposing the format (particularly painful for
Z32_FLOAT_X24S8, which means all the fake packed depth/stencil paths).

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
b18875d441ca4b7b1a4098659fb4298a4bf265f6 17-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Use separate stencil whenever possible

For depthstencil renderbuffers, we were using separate stencil only if the
hardware required it. Since the performance gains from HiZ is so high, we
should always use separate stencil if the hardware supports it.

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_mipmap_tree.c
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_mipmap_tree.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_mipmap_tree.c
3d760664e6349c72624aa6d54d40df0233995c8e 16-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Mark needed resolves when first enabling HiZ on a miptree

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_mipmap_tree.c
2945abea338031cbe90665df60152982bfca6177 16-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Add resolve functions for miptrees

Add functions that
- set a miptree slice as needing a resolve
- resolve a single slice of a miptree
- resolve all slices of a miptree

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_mipmap_tree.c
a2e44b0813e956440c451c107cf5564b56cbe98e 17-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Replace intel_mipmap_tree::hiz_region with a miptree [v2]

This is required to correctly implement HiZ for mipmapped and
multi-layered textures.

v2: Accomodate refcount fixes in intel_process_dri2_buffer_*() that were
introduced in v2 of commit
intel: Replace intel_renderbuffer::region with a miptree [v2]

Reviewed-by: Eric Anholt <eric@anholt>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
3eb12dfaeed03f77e31943eea164acb03e86bbc9 16-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Replace intel_texture_image::stencil_irb with intel_mipmap_tree::stencil_mt [v3]

For depthstencil textures using separate stencil, we embedded a stencil
buffer in intel_texture_image. The intention was that the embedded stencil
buffer would be the golden copy of the texture's stencil bits. When
necessary, we scattered/gathered the stencil bits between the texture
miptree and the embedded stencil buffer.

This approach had a serious deficiency for mipmapped or multi-layer
textures. Any given moment the embedded stencil buffer was consistent with
exactly one miptree slice, the most recent one to be scattered. This
permitted tests of type A to pass, but broke tests of type B.

Test A:
1. Create a depthstencil texture.
2. Upload data into (level=x1,layer=y1).
3. Read and test stencil data at (level=x1, layer=y1).
4. Upload data into (level=x2,layer=y2).
5. Read and test stencil data at (level=x2, layer=y2).

Test B:
1. Create a depthstencil texture.
2. Upload data into (level=x1,layer=y1).
3. Upload data into (level=x2,layer=y2).
4. Read and test stencil data at (level=x1, layer=y1).
5. Read and test stencil data at (level=x2, layer=y2).

v2:
Only allocate stencil miptree if intel->must_use_separate_stencil,
because we don't make the conversion from must_use_separate_stencil to
has_separate_stencil until commit
intel: Use separate stencil whenever possible

v3:
Don't call ChooseNewTexture in intel_renderbuffer_wrap_miptree() in
order to determine the renderbuffer format. Instead, pass the format as
a param to that function.

CC: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
278e77a1192d5251c5b70a555e676f72b446e8e1 17-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Refactor intel_miptree_copy_teximage()

Extract the body of the inner loop into a new function,
intel_miptree_copy_slice().

This is in preparation for adding support for separate stencil and HiZ to
intel_miptree_copy_teximage(). When copying a slice of a depthstencil
miptree that uses separate stencil, we will also need to copy the
corresponding slice of the stencil miptree. The easiest way to do this
will be to call intel_miptree_copy_slice() recursively. Analogous
reasoning applies to copying a slice of a depth miptree with HiZ.

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_mipmap_tree.c
c2ddde70daece24d1eb7185946032158993a9e4d 14-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Refactor intel_mipmap_level offsets

Add a new field, intel_mipmap_level::slice, and move the offset fields
into it. Also add some much needed documentation for these fields.

Before this patch, a separate array was allocated for the
intel_mipmap_level::{x,y}_offsets. This was just silly; it incurred an
extra call to malloc and diminished memory locality.

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_mipmap_tree.c
005149d5860ad55c5e58e2de8a138e3a763f2036 14-Nov-2011 Chad Versace <chad.versace@linux.intel.com> intel: Define intel_miptree_create_for_renderbuffer()

This function creates a miptree that is suitable as storage for
a non-texture renderbuffer.

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_mipmap_tree.c
4ad8a0adec588b4c2c5a8f93265ed46cee5d3ff6 17-Oct-2011 Eric Anholt <eric@anholt.net> intel: Drop texture border support code.

Now that texture borders are gone, we never need to allocate our
textures through non-miptrees, which simplifies some irritating paths.

v2: Remove the !mt support case from intel_map_texture_image()

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
882c83377da57d41c62eb38484305523c3d19dd7 24-Oct-2011 Chad Versace <chad@chad-versace.us> intel: Kill dead code in intel_miptree_copy_teximage()

Kill the code paths taken when src_mt is null. It is never null, otherwise
there would be a segfault on line 4 of this function:
GLuint width = src_mt->level[level].width;

(Some interleaved lines in the diff make the real diff non-obvious. All
I did was delete some code and then left-shifted what remained to correct
the indentation.)

Reviewed-by: Eric Anholt <eric@aholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
66681b4c8cb1ef16f42c1591298cb30c83bca09b 23-Oct-2011 Brian Paul <brianp@vmware.com> mesa: remove _mesa_alloc_texmemory(), _mesa_free_texmemory()

Core Mesa no longer does any texture memory allocation.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
6e0f9001fe3fb191c2928bd09aa9e9d05ddf4ea9 23-Oct-2011 Brian Paul <brianp@vmware.com> mesa: move gl_texture_image::Data, RowStride, ImageOffsets to swrast

Only swrast and the drivers that fall back to swrast need these fields now.
This removes the last of the fields related to software rendering from
gl_texture_image.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
f8377b411dfe3c879eaab11bb86f509178796bd1 22-Sep-2011 Chad Versace <chad@chad-versace.us> intel: Add 'mode' param to intel_region_map

The 'mode' param is a bitset of GL_MAP_READ_BIT, GL_MAP_WRITE_BIT.

A future commit will perform buffer resolves in intel_region_map(). So,
even though the access mode is irrelevant to the GTT, the extra
information allows us to intelligently avoid unneccessary buffer resolves.

Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
2e5a1a254ed81b1d3efa6064f48183eefac784d0 07-Oct-2011 Kenneth Graunke <kenneth@whitecape.org> intel: Convert from GLboolean to 'bool' from stdbool.h.

I initially produced the patch using this bash command:
for file in {intel,i915,i965}/*.{c,cpp,h}; do [ ! -h $file ] && sed -i
's/GLboolean/bool/g' $file && sed -i 's/GL_TRUE/true/g' $file && sed -i
's/GL_FALSE/false/g' $file; done

Then I manually added #include <stdbool.h> to fix compilation errors,
and converted a few functions back to GLboolean that were used in core
Mesa's function pointer table to avoid "incompatible pointer" warnings.

Finally, I cleaned up some whitespace issues introduced by the change.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Chad Versace <chad@chad-versace.us>
Acked-by: Paul Berry <stereotype441@gmail.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
fd99cd0e10849205749aad580fea8c970fb46a31 29-Sep-2011 Eric Anholt <eric@anholt.net> intel: Add a helper function for getting miptree size from a texture image.

With 1D array textures, we no longer agree between the GL information
about width/height/depth of a texture and how we lay out a miptree.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
b07c78bfe94c17e6fccba70923b03a29c751fde1 29-Sep-2011 Eric Anholt <eric@anholt.net> intel: Consolidate texture validation copy code, and reuse it correctly.

The path for ->Data was failing to be called for the FBO draw offset
fallback, and also had mismatched compressed texture support code.

This drops the intel_prepare_render() in the blit path. We aren't
copying to/from a GL_FRONT buffer, so it doesn't matter.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
055995abc4e2f4a73122bd008a0e6f0558300d82 29-Sep-2011 Eric Anholt <eric@anholt.net> intel: Clean up the function chain for mapping texture images for swrast.

Too many separate functions each called from one location (in
different files). This code should all die soon when swrast starts
using MapTextureImage.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
32fe506ae14efa055f4773f422e2edd9fd1cffee 22-Sep-2011 Eric Anholt <eric@anholt.net> intel: Allow src == NULL and *dst != NULL in intel_miptree_reference().

This makes this API consistent with intel_region_reference, and the
consumers wanted it this way.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
db3ada6055814a4bd5aa95fc9505fc101864391d 22-Sep-2011 Eric Anholt <eric@anholt.net> intel: Drop the "intel" argument to intel_miptree_release().

We don't have it in the other refcounting functions, and it was
totally unused.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
d7cdbc3c5415d2dd5eee58834b13714a89eacf2b 24-Sep-2011 Kenneth Graunke <kenneth@whitecape.org> intel: Remove pointless boolean return value from *_miptree_layout.

i915_miptree_layout, i945_miptree_layout, and brw_miptree_layout always
just return GL_TRUE, so there's really no point to it. Change them to
void functions and remove the (dead) error checking code.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
1a662e7c18cab98f1b122f6766faf338725de673 23-Sep-2011 Yuanhan Liu <yuanhan.liu@linux.intel.com> intel: fix the wrong code to detect null texture.

There is already comments show how to detect a null texture. Fix the
code to match the comments.

This would fix the oglc divzero(basic.texQOrWEqualsZero) and
divzero(basic.texTrivialPrim) test case fail.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
fa2c886863492cc3eeee6d2059ae24edc1cb2bff 17-Sep-2011 Brian Paul <brianp@vmware.com> intel: make intel_texture_image a subclass of swrast_texture_image

We need to subclass swrast_texture_image because if we use swrast for
fallback rendering, we'll need to have swrast_texture_image objects.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
6f23d9b637602d9997896c6ca5cba0dfe36a092e 26-Aug-2011 Ian Romanick <ian.d.romanick@intel.com> intel: Silence "warning: unused parameter ‘depth0’"

The depth0 parameter was not used in intel_miptree_create_for_region,
so remove it. All of the places that call this function, pass 1 for
that parameter, and the place where it looks like it should have been
used (the call to intel_miptree_create_internal) also had 1 hard
coded.

Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
7dae1aaf142999e3cfeafb13d30abda667d66d87 15-Jul-2011 Brian Paul <brianp@vmware.com> intel: use new gl_texture_image:Face, Level fields

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
f94fef83db10f0c9327bd3dd43510ad31c94d82a 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Drop the cpp argument to intel_miptree_create().
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
6dcc398ac0837025cf60b4d6a056fa3b0a16466f 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Calculate compress_byte in intel_miptree_create.

One less argument and thing to get wrong.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
9c5fdbb721147f7304faaa8960f5b64e25a8f673 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Use the gl_format to get the base_format for miptree create.

One less argument to this insanely long function call.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
9a523a48af05118424714f0a34ca3dda6861186a 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Drop the internal_format field of the mipmap tree.

This has been replaced with the gl_format now.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
0fac09a87c07d09dcd915c02b831505a53b02153 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Make the intel_miptree_match_image format check more specific.

We don't care just about the internalFormat/cpp/compressed, but about
the specific format chosen. We have no support for format
translations as part of texture validation, and furthermore it has
restrictions in the GL specification. However, we should be making
consistent decisions for this check anyway.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
d5809115b568d8b74f47316607dce0730964517a 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Add the MESA_FORMAT as a field of the miptree.

We only had internal_format before, which is way more irritating to
work with.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
51ce86b7811871896d3b838888ab4adbfb77413d 09-Jun-2011 Eric Anholt <eric@anholt.net> intel: Fix 2x2 and 1x1 compressed teximages from _mesa_generate_mipmap()

Generally image uploads to a the region occur at TexImage time, but
that's not the case for fallback _mesa_generate_mipmap(), and in this
path we were forgetting to align the width when dividing height. We
were just leaving out parts of the compressed block at 2x2 and 1x1
levels.

Fixes gen-compressed-teximage.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
c270f1a628a625ccc9f6d931f2921e3d92c31818 23-May-2011 Chad Versace <chad@chad-versace.us> intel: Add hiz_region to intel_mipmap_tree

When a texture is attached to multiple FBO's, a separate renderbuffer
wrapper is created for each attachment. This necessitates storing the hiz
region for these renderbuffers in the texture itself instead of the
renderbuffer wrapper.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.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_mipmap_tree.c
01b70c06284f3a0ab2de61228b73c78ed00a1a14 06-Jan-2011 Eric Anholt <eric@anholt.net> intel: Drop unused first/lastlevel args to miptree_create_for_region.

We're always making a single-level, 0-baselevel miptree.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
b917691bc015ec4a148a67bf3a1cdca0248400a7 25-Sep-2010 Eric Anholt <eric@anholt.net> intel: Improve some of the miptree debugging.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
9087ba128089ed0dc00e6eb38f37126fb7557d3b 04-Jun-2010 Kristian Høgsberg <krh@bitplanet.net> intel: Take an intel_screen pointer in intel_alloc_region_* functions
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
c374487a54aca2dd1053645092367c1cf0414ef7 11-Aug-2010 Eric Anholt <eric@anholt.net> intel: Remove include of texmem.h, since we haven't used it in ages.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
84178547dfaa27ca298ad1755d1ce686036a8550 17-Jun-2010 Vinson Lee <vlee@vmware.com> intel: Remove unnecessary headers.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
178414eba402f9087ea505e7ef19f1becdd7a36d 11-Jun-2010 Eric Anholt <eric@anholt.net> i965: Remove caching of surface state objects.

It turns out that computing a 56 byte key to look up a 20-byte object
out of a hash table was some sort of a bad idea. Whoops.

before:
[ # ] backend test min(s) median(s) stddev. count
[ 0] gl firefox-talos-gfx 37.799 38.203 0.39% 6/6
after:
[ 0] gl firefox-talos-gfx 34.761 34.784 0.17% 5/6
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
453f0b1f243b26e02b371293e9c8bbf09362c14a 05-May-2010 Eric Anholt <eric@anholt.net> intel: Don't tile textures so small that size is blown up by over 2x.

Noted on the mailing list for an app that puts each glyph for its text
into a separate texture.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
6422cf387baef75df9e5dbbed5cea4c0f495fe41 22-Mar-2010 Kristian Høgsberg <krh@bitplanet.net> intel: Call intel_prepare_render() before looking up regions.

Fixes #27213.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
da011faf48155a5c02ebc1fe1fa20a4f54b8c657 17-Mar-2010 Eric Anholt <eric@anholt.net> intel: Rely on allocated region pitch for the miptree pitch.

Bug #26966: 945 miptree pitch disagreement with libdrm.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
0c51390e4b5e04b992e50fcbed751024e6c329de 17-Mar-2010 Eric Anholt <eric@anholt.net> intel: Remove level_offset now that it's unused.

This is the last pitch-dependent part of miptree setup.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
a589da14dee0c2a32e6e529f1a390b01a3ee4001 16-Mar-2010 Eric Anholt <eric@anholt.net> i965: Fix inversion for glCopyPixels to/from FBOs.

fixes piglit fbo-copypix.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
bb35000b4b6dfe60048b2f5d60bc102c4a7fd791 05-Mar-2010 Eric Anholt <eric@anholt.net> intel: Remove non-kernel-exec-fencing support.

Shaves 60k off the driver from removing the broken spans code. This
means we now require 2.6.29, which seems fair given that it's a year
old and we've removed support for non-KMS already in the last release
of 2D.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
07439cf61717a3bde82745aa2acc878d7fd0133f 03-Mar-2010 Eric Anholt <eric@anholt.net> i915: Don't do the pitch expansion for tiled buffers.

The weirdness that led to the bumping of pitch for those 512/1024
pixels is that in taking a 2x2 subspan or bilinear filtering we'd end
up hitting the same channel in 2 different pages, leading to lower
performance. With tiling, that doesn't occur, so we don't need to
waste the memory.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
c6e26d76c7f59b51be00c960112c85ad4b3d2334 31-Jan-2010 Vinson Lee <vlee@vmware.com> intel: Remove unnecessary headers.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
f67748038935e609aa85450b20d550b4813c9429 17-Dec-2009 Eric Anholt <eric@anholt.net> intel: Replace some gen3 IS_* checks with context structure usage.

Shaves 400 bytes or so from i915_dri.so.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
827ba44f6ee83ab21c6a2b09323f6f1df4a7d4c8 18-Nov-2009 Eric Anholt <eric@anholt.net> intel: Remove non-GEM support.

This really isn't supported at this point. GEM's been in the kernel for
a year, and the fake bufmgr never really worked.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
1166294d1dd253da63620235100a11f1981aa86d 05-Nov-2009 Eric Anholt <eric@anholt.net> intel: Finish removing the fallback code for bug #16697.

I fixed it properly as of 7216679c1998b49ff5b08e6b43f8d5779415bf54.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
8f30ceaaefc33401b08739a16ce1c5638d6432fa 04-Nov-2009 Eric Anholt <eric@anholt.net> intel: Remove duplicated arguments from intel_miptree_match_image().
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
caf3038123d6d29afd7d1f0cd6db98a2282c3ca1 26-Oct-2009 Eric Anholt <eric@anholt.net> Make a convenient int for what chipset generation we're on.

gen2/3/4 are easier to say than "8xx, 915-945/g33/pineview, 965/g45/misc",
and compares on generation are often easier than stringing together a bunch
of chipset checks.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
1f196b786d6bd0c6a5dbdc638574ff716cc3d4de 29-Oct-2009 Brian Paul <brianp@vmware.com> Merge branch 'texformat-rework'

Conflicts:
src/mesa/drivers/dri/radeon/radeon_fbo.c
src/mesa/drivers/dri/s3v/s3v_tex.c
src/mesa/drivers/dri/s3v/s3v_xmesa.c
src/mesa/drivers/dri/trident/trident_context.c
src/mesa/main/debug.c
src/mesa/main/mipmap.c
src/mesa/main/texformat.c
src/mesa/main/texgetimage.c
7d56caabe45e91a67096804c7e341d04d01db7aa 28-Oct-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_6_branch'

Conflicts:

src/mesa/shader/lex.yy.c
src/mesa/shader/program_lexer.l
a7d0665c00053839065592c339bfb298187a82be 28-Oct-2009 Vinson Lee <vlee@vmware.com> intel: Fix memory leak in event of mip tree allocation failure

Signed-off-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
49d402e275cdaf46de8db5a475dfe00509141195 23-Oct-2009 Eric Anholt <eric@anholt.net> Merge remote branch 'origin/mesa_7_6_branch'

Conflicts:
src/mesa/drivers/dri/intel/intel_fbo.c
src/mesa/drivers/dri/intel/intel_mipmap_tree.c
src/mesa/drivers/dri/intel/intel_mipmap_tree.h
src/mesa/drivers/dri/intel/intel_tex_copy.c
src/mesa/drivers/dri/intel/intel_tex_image.c
2d17dbfb5346b6d75e87c839148cbe125bf5cd6d 09-Jul-2009 Eric Anholt <eric@anholt.net> intel: Keep track of x,y offsets in miptrees and use them for blitting.

By just using offsets, we confused the hardware's tiling calculations,
resulting in failures in miptree validation and blit clears.

Fixes piglit fbo-clearmipmap.

Bug #23552. (automatic mipmap generation)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
47a7535f413d6467082de224f64eecc046227406 13-Oct-2009 Brian Paul <brianp@vmware.com> intel: whitespace/formatting clean-up
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
3732d0a77d2cbae50874f5a4ebdb3d8f06021a57 13-Oct-2009 Brian Paul <brianp@vmware.com> intel: replace extern decl with #include
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
c932e21fa848562325f666dce5db3b09bc61bffa 13-Oct-2009 Brian Paul <brianp@vmware.com> intel: code clean-ups
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
e6594a22f298833eeb6881795b24d03d2fd8e898 13-Oct-2009 Brian Paul <brianp@vmware.com> intel: pass zslice to intel_miptree_image_offset()

This lets us get rid of intel_miptree_depth_offsets() and simplify all
of the calling code.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
b6bdafdf2cf1110b4a5ca7cf9e1c3dcb124b800f 02-Oct-2009 Brian Paul <brianp@vmware.com> mesa: remove gl_texture_image::IsCompressed field

Use _mesa_is_format_compressed() instead.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
1f7c914ad0beea8a29c1a171c7cd1a12f2efe0fa 01-Oct-2009 Brian Paul <brianp@vmware.com> mesa: replace gl_texture_format with gl_format

Now gl_texture_image::TexFormat is a simple MESA_FORMAT_x enum.
ctx->Driver.ChooseTexture format also returns a MESA_FORMAT_x.
gl_texture_format will go away next.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
49fbdd18ed738feaf73b7faba4d3577cd9cc3e59 12-Feb-2009 Eric Anholt <eric@anholt.net> i965: Fix massive memory allocation for streaming texture usage.

Once we've freed a miptree, we won't see any more state cache requests
that would hit the things that pointed at it until we've let the miptree
get released back into the BO cache to be reused. By leaving those
surface state and binding table pointers that pointed at it around, we
would end up with up to (500 * texture size) in memory uselessly consumed
by the state cache.

Bug #20057
Bug #23530
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
9fbb8884f034e0d691fed0e099d4d796f3b42848 28-Sep-2009 Brian Paul <brianp@vmware.com> mesa/drivers: use _mesa_get_format_bytes()
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
5e6b593d35156a0068dc0eb3e55dec086f1cadd3 01-Jul-2009 Eric Anholt <eric@anholt.net> intel: Avoid pointer arithmetic on void *.

Bug #22000.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
9c0ba017c8ff7caafc3ff94da3c035e687231596 23-Jun-2009 Eric Anholt <eric@anholt.net> i965: Fix depth-texture Y-tiling detection for sized internal formats.

Fixes assertion failure on norsetto shadow mapping demo.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
e0a4e25f938953201fef2bf702e2e709451200f4 23-Jun-2009 Eric Anholt <eric@anholt.net> i965: Fix packed depth/stencil textures to be Y-tiled as well.

Fixes shadowtex.c. And an assert is added to catch this sooner next time.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
8f81a6468fdbc7320800ea497791e3e1b8f782ca 22-Jun-2009 Eric Anholt <eric@anholt.net> intel: Avoid trying to do blits to Y tiled regions.

This is somewhat nasty, but we need to do Y-tiled depth for FBO support.
May help with corruption and hangs since enabling texture tiling, and
since switching depth textures to Y tiled.

Fixes piglit depthtex.c on 965.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
246d59c29e3e5a57dcf2f60ad429eb1606193ef0 22-Jun-2009 Eric Anholt <eric@anholt.net> intel: Fix some potential writes to zero-copy PBOs when used as regions.

I was in the midst of fixing some blitting-with-Y-tiled issues when I
noticed this. Hopefully PBO usage will be a little more robust, as a
result.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
bd10f0e84f1491363d76d92dcbd410ab5cc43dbe 12-Jun-2009 Eric Anholt <eric@anholt.net> i965: Fix tiling for FBO depth attachments by making DEPTH_COMPONENT Y tiled.

This may hurt if miptree relayout occurs, since we can't blit Y tiled
objects. But it corrects depth tests on FBOs using textures.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
1d112207716774b32c0cc846304c2c50bf40e812 08-May-2009 Robert Ellison <papillo@vmware.com> i965: improve debug logging

Looking for memory leaks that were causing crashes in my environment
in a situation where valgrind would not work, I ended up improving
the i965 debug traces so I could better see where the memory was
being allocated and where it was going, in the regions and miptrees
code, and in the state caches. These traces were specific enough
that external scripts could determine what elements were not being
released, and where the memory leaks were.

I also ended up creating my own backtrace code in intel_regions.c,
to determine exactly where regions were being allocated and for what,
since valgrind wasn't working. Because it was useful, I left it in,
but disabled and compiled out. It can be activated by changing a flag
at the top of the file.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
40dd024be618d805b3744e15d25e115018641324 18-Feb-2009 Eric Anholt <eric@anholt.net> intel: tell libdrm whether we want a cpu-ready or gpu-ready BO for regions.

This lets us avoid allocing new buffers for renderbuffers, finalized miptrees,
and PBO-uploaded textures when there's an unreferenced but still active one
cached, while also avoiding CPU waits for batchbuffers and CPU-uploaded
textures. The size of BOs allocated for a desktop running current GL
cairogears on i915 is cut in half with this.

Note that this means we require libdrm 2.4.5.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
e72a44215312ae1f3c812ba28e47b4aec3589de9 12-Dec-2008 Pierre Willenbrock <pierre@pirsoft.de> intel: Don't steal renderbuffer from caller in intel_miptree_create_for_region

Fixes double-frees of some regions, once from the renderbuffer code and
once from the miptree itself.

Bug #19062
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
8b69c42b356d51c3a37bc0af41738b016c2adc5b 12-Dec-2008 Xiang, Haihao <haihao.xiang@intel.com> intel: check for null texture. (fix #13902)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
8db761409dadc2e899d4e7107eff3aa07b07aa11 13-Sep-2008 Eric Anholt <eric@anholt.net> intel: Add a width field to regions, and use it for making miptrees in TFP.

Otherwise, we would use the pitch as width of the texture, and compiz would
render the pitch padding on the right hand side.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
e438827dec5a3aafa04e13caf5988f359c004249 18-Aug-2008 Henri Verbeet <hverbeet@gmail.com> fix byte vs. pixel offset bug for 3D textures (see bug 17170)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
b4b7326717d3253656f9702fc04f06f8d210a6aa 18-Jul-2008 Xiang, Haihao <haihao.xiang@intel.com> intel: fix texture border issue. (bug #16697)
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
d12fa3511da23d8285f3ea1a51a1f328cdbb1462 30-Apr-2008 Xiang, Haihao <haihao.xiang@intel.com> intel: test cpp to ensure mipmap tree matches texture image.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
e5f50f2fa32c50807da3a8f13733f0fbc7868f94 19-Mar-2008 Eric Anholt <eric@anholt.net> [intel] Clarify miptree layout by using byte offsets to images.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
4a556bcb17b8b0dd9ba4ef6eccbb3cfb2ad6a025 17-Mar-2008 Xiang, Haihao <haihao.xiang@intel.com> intel: fix the error in commit 7ed1fd5d8438e55fe24091844cdfccb0881306bc
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
7ed1fd5d8438e55fe24091844cdfccb0881306bc 17-Mar-2008 Xiang, Haihao <haihao.xiang@intel.com> intel: Remove an assertion from intel_miptree_create. TexImage
call with zero width/height/depth matches GL spec.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
36c26d321b5d17902f0e8f531654dfb2fe2bdd2d 04-Mar-2008 Kristian Høgsberg <krh@redhat.com> [intel] Silence unused variable warning when compiling for i965.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
0da03c0aa9ed120fe5ff781a365b503b8ed70e0c 28-Feb-2008 Zou Nan hai <nanhai.zou@intel.com> [intel] fix compressed image height
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
9bd2cb7f90ac434ec5be7d388f899976bf902dc1 26-Feb-2008 Zou Nan hai <nanhai.zou@intel.com> [i915] fix texture size exceed limit case when running celestia
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
1d14da9a89e8d7f49b754ca1f24cb062a261a7e7 25-Feb-2008 Zou Nan hai <nanhai.zou@intel.com> [intel] fix random ut2004 crash on some machine, for cubemap textures,
image offset is already considered when map, add it again in
StoreImage may lead to wrong result and crash.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
6d48779c7e5c9002d1bec4b1266ca05a474218ef 15-Feb-2008 Kristian Høgsberg <krh@redhat.com> Add TTM buffer object based texture from pixmap implementation.

Currently only implemented for intel hw.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
3956597962dcf6c8082541199ebac58e0d84f6bc 29-Dec-2007 Roland Scheidegger <sroland@tungstengraphics.com> Bug #13839: Fix 3D texture offset miscalculation with pixels versus bytes.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
101abee6c4fc2c9284ff2ba6f9f9138327d6963d 19-Dec-2007 Eric Anholt <eric@anholt.net> [intel] Fix and reenable (software) SGIS_generate_mipmap

The core problem was that _mesa_generate_mipmap was not respecting RowStride
of the source image. Additionally, the intel private data associated with the
images (level and face) was not being initialized for the
_mesa_generate_mipmap-generated images.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.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_mipmap_tree.c
d913a15898fc8edc68ee673e2ae038cf2d7e8af9 16-Dec-2007 Eric Anholt <eric@anholt.net> [i915] Fix missing symbol from 965 changes.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
c0b4257aa9ba783674ccf7162799385734dff211 16-Dec-2007 Eric Anholt <eric@anholt.net> [965] Move to using shared texture management code.

This removes the delayed texture upload optimization from 965, in exchange for
bringing us closer to PBO support. It also disables SGIS_generate_mipmap,
which didn't seem to be working before anyway, according to the lodbias demo.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
659baa3f25275b622dad626992af60f3c9ea6d66 15-Dec-2007 Eric Anholt <eric@anholt.net> [intel] Whitespace and comment changes to bring intel_mipmap_tree.c closer.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
7c71ef3a3d0cf2620525f468960cdc76a0fb0d33 12-Dec-2007 Eric Anholt <eric@anholt.net> [intel] Move bufmgr back to context instead of screen, fixing glthreads.

Putting the bufmgr in the screen is not thread-safe since the emit_reloc
changes. It also led to a significant performance hit from pthread usage
for the attempted thread-safety (up to 12% of a cpu spent on refcounting
protection in single-threaded 965). The motivation had been to allow
multi-context bufmgr sharing in classic mode, but it wasn't worth the cost.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
77a5bcaff43df8d54e0e0ef833726e4b41d7eb36 07-Nov-2007 Eric Anholt <eric@anholt.net> [intel] Move over files that will be shared with 965-fbo work.
/external/mesa3d/src/mesa/drivers/dri/intel/intel_mipmap_tree.c