summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50/nv50_miptree.c
AgeCommit message (Collapse)Author
2010-03-01nouveau: Rename pipe formats.José Fonseca
2010-02-02gallium: pipe/p_inlines.h -> util/u_inlines.hJosé Fonseca
2010-01-16nv50: fix tile flags for scanout tex usageChristoph Bumiller
2010-01-12nv50: fix 2 off by one memory leaks (nv50_miptree_level->image_offset)Marcin Slusarz
2009-12-17Move the remaining format pf_get_* functions to u_format.h.Michal Krol
Previously they depended on format blocks, but after removing those they started depending on format encoding.
2009-12-13nv50: add proper zslice offset in miptree_surfaceChristoph Bumiller
2009-12-12nv50: plug memory leak in miptree creation/destructionChristoph Bumiller
Keeping this dynamically allocated for texture arrays. Since we don't use it to store zslice offsets anymore it's either 1 or 6 integers (cube) ...
2009-12-02gallium: adapt nv drivers to interface cleanupsRoland Scheidegger
2009-11-26gallium: fix more statetrackers/drivers for not using texture ↵Roland Scheidegger
width/height/depth arrays
2009-11-04nv50: add 3d texture tiling and mip-mappingChristoph Bumiller
Mip-mapped 3D textures are not arrays of 2D layers with a mip-map layout like 2D textures, therefore we cannot use image_nr == depth for them. Making use of "volume tiling" modes now, the allowed modes are 0xZY where Z <= 5 and y <= 5.
2009-10-31nv50: fix textures with block size != cppChristoph Bumiller
First, using width * block size as pitch is evidently wrong if a block contains more than 1 texel. For tiled textures, since a block occupies a contiguous area of memory, y addressing in m2mf has to be done by block index, not the y coordinate itself. This should fix compressed textures.
2009-09-10nv50: Fix tiling mode for lower mipmap levels.Marcin Kościelnicki
2009-08-31nouveau: introduce nouveau_miptree common to all nouveau pipe driversBen Skeggs
The winsys once again has to know about textures it seems, so we need a common representation between all our pipe drivers to store some information the winsys will need. Only the nv50 driver has been fixed so far.
2009-08-17nv50: whitespace fixes and deobfuscationMaarten Maathuis
2009-08-14nv50: fix mipmap offsets and tilingChristoph Bumiller
The hardware expects a texture's tile mode to change with the mipmap level. Also, only multiply by block size once to obtain size.
2009-07-29nv50: correct zeta formatsChristoph Bumiller
What was Z24S8 before is actually S8Z24, and what we had for Z16 is actually X8Z24. Now, we also have the REAL Z24S8 and I added Z32_FLOAT as well; most of the formats need different tile_flags.
2009-07-01nouveau: return some supported zeta formatsBen Skeggs
2009-06-05nv50: use larger tile sizesBen Skeggs
2009-06-05nv50: create textures with nouveau_bo, for flexibility with tiling laterBen Skeggs
2009-03-26gallium: Remove some little-used fields from struct pipe_surface.Michel Dänzer
2009-03-04gallium: Unify reference counting.Michel Dänzer
The core reference counting code is centralized in p_refcnt.h. This has some consequences related to struct pipe_buffer: * The screen member of struct pipe_buffer must be initialized, or pipe_buffer_reference() will crash trying to destroy a buffer with reference count 0. u_simple_screen takes care of this, but I may have missed some of the drivers not using it. * Except for rare exceptions deep in winsys code, buffers must always be allocated via pipe_buffer_create() or via screen->*buffer_create() rather than via winsys->*buffer_create().
2009-02-20nv50: rework for texture_transfer changesBen Skeggs
2009-02-07nouveau: Need to surface_copy() without a pipe context.Younes Manton
2009-02-04nouveau: get things building/running again after pipe_surface.buffer removalBen Skeggs
Don't look at nouveau_winsys_pipe.h... I promise it's temporary!
2009-02-02gallium: remove pipe_buffer from surfacesZack Rusin
this change disassociates, at least from the driver perspective, the surface from buffer. surfaces are technically now views on the textures so make it so by hiding the buffer in the internals of textures.
2009-01-20gallium: Remove the standalone surfaces.José Fonseca
This commit is mostly just a cosmetic change that cleans-up the interfaces, replacing pipe_winsys::surface_* calls by /** * Allocate storage for a display target surface. * * Often surfaces which are meant to be blitted to the front screen (i.e., * display targets) must be allocated with special characteristics, memory * pools, or obtained directly from the windowing system. * * This callback is invoked by the pipe_screenwhen creating a texture marked * with the PIPE_TEXTURE_USAGE_DISPLAY_TARGET flag to get the underlying * buffer storage. */ struct pipe_buffer *(*surface_buffer_create)(struct pipe_winsys *ws, unsigned width, unsigned height, enum pipe_format format, unsigned usage, unsigned *stride); Most drivers were updated but not all were tested. Use the softpipe pipe driver and the xlib winsys changes as a reference when fixing other drivers.
2009-01-12nv50: make rtt work againBen Skeggs
2009-01-12nv50: fix handling of depth texturesBen Skeggs
2009-01-12nv50: another typo..Ben Skeggs
2009-01-12nv50: fix assertion failureBen Skeggs
2009-01-12nv50: fix a typo and a thinkoBen Skeggs
2009-01-12nv50: any cpu access to a texture is done on its backing imagesBen Skeggs
Still a little dodgy: - RTT will hit an assertion (hopefully!) and fail - 3D textures with depth >= 32 will cause bad things to happen
2009-01-12nv50: create buffers for each image that makes up a textureBen Skeggs
2009-01-06nv50: working towards 3D texturesBen Skeggs
2009-01-06nv50: slightly better miptree allocationBen Skeggs
I swear this didn't work last time I tried it.. Anyhow, still only suitable for 2D miptrees - more coming once I know the layout.
2008-09-18nv50: hack surface alloc a bit for nowBen Skeggs
2008-09-11nouveau: gallium directory structure changed again..Ben Skeggs
2008-07-11nv50: quick hack to get textures untiled on map, and tiled on unmapBen Skeggs
progs/fp/tri-tex is all good now rather than all scrambled :)
2008-07-11nv50: add license headers to .c filesBen Skeggs
2008-06-29nv50: fixes after rebase + commits note on the code that was just pushed.Ben Skeggs
OK, seems a lot of people have been getting the idea that nouveau is dying lately - I decided to commit some of the work I've been doing lately to prove them wrong :) Progress on my side is slow due to lack of time mainly, but I'm still around. Firstly, don't even bother trying to use gallium on G8x/G9x yet, it won't work. I've deliberately left all the necessary winsys changes out of the commits for a very good reason - I don't know what we're going to need from the DRM exactly yet and don't want to be continually breaking interfaces as I discover additional requirements. On my side, I think I've gone through about 3 different DRM interface changes, and have just discovered that I may need more yet. It'd be very annoying for everyone who uses nouveau to keep things in sync. Once I've got it sorted - I'll commit a lot of cool stuff. Stay tuned. Also, don't look at the shader code.. it's horribly nasty and full of hacks, I used it as an opportunity to learn G8x GPU programs at the same time. New semi-decent code is in works, and will follow at some point. :)
2008-06-29nv50: rework miptree/texture/texsurf code a bitBen Skeggs
2008-06-29nv50: turn on depth test/write again, not 100% but winsys handles it betterBen Skeggs
2008-06-29nv50: do tsc/tic upload + stub out shader TEX stuffBen Skeggs
2008-06-29nv50: flag to indicate to winsys we want a surface for use as a zeta bufferBen Skeggs
NVIDIA love to make life difficult.. we need different flags in PTEs for zeta.. yay.. not.
2008-06-29nv50: hehe, damage from tex-surfaces.. surface_fill() reenabled now :)Ben Skeggs
2008-06-29nouveau: adapt to cpp->pf_block changesBen Skeggs
2008-05-27nouveau: very quick port to tex-surface changes.Ben Skeggs
probably the last match-gallium-upstream merge for a bit, some cleanup+nv50 work coming RSN...
2008-05-13nv50: slightly less skeletal texture funcs, prevents fun segfaultsBen Skeggs
2008-03-21nouveau: match gallium API changesBen Skeggs
2008-02-29nouveau: implement pipe_screenBen Skeggs
Untested on NV3x/NV5x. Quite possibly broken.