summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv40/nv40_miptree.c
AgeCommit message (Collapse)Author
2010-03-15nv30, nv40: unify nv[34]0_miptree.cLuca Barbieri
The only difference between nv30 and nv40 is that nv30 allowed swizzling for more texture types. This patch preserves the existing behavior, using conditional code. Note however that this does not make sense, since all texture types can be swizzled on nv40 and probably on nv30 too. However, the handling of swizzled surfaces in the current 2D code is partially broken, so it's best not to touch this. A whole rewrite of the 2D code will be submitted, which will solve this problem.
2010-03-15nv30, nv40: unify all structures and headers, except shadersLuca Barbieri
This patch unifies nv[34]0_screen.h, nv[34]0_context.h and nv[34]0_state.h The unified files are put in a new "nvfx" directory. nv30_context.h and nv40_context.h still exist to hold the function prototypes and include nvfx_context.h nv[34]0_screen.h and nv[34]0_state.h are deleted, replaced by the unified versions. nv40 includes some extra fields for swtnl and user clip planes support. These fields will be unused on nv30 until that functionality gets added to it too (by unification with nv40).
2010-03-09Squashed commit of gallium-no-texture-blanketKeith Whitwell
commit f90b3f01af82b9522067b1824e21709a6fb2d3af Author: Keith Whitwell <keithw@vmware.com> Date: Mon Mar 8 14:39:44 2010 +0000 gallium: remove p_screen::surface_buffer_create This isn't very useful without texture_blanket(), which has also been removed. Note that this function hasn't been removed from the old pipe_winsys (u_simple_screen) still used internally by some drivers (eg softpipe). commit 6c462de39a4b9980a5f034a95e580efdfcb8173b Author: Keith Whitwell <keithw@vmware.com> Date: Mon Mar 8 14:27:40 2010 +0000 egl/x11: disable texture_blanket usage commit b42da9160df9f47224e5b3291b972f41767aa6e5 Merge: 4be2436 3ca9336 Author: Keith Whitwell <keithw@vmware.com> Date: Mon Mar 8 14:27:24 2010 +0000 Merge commit 'origin/master' into gallium-no-texture-blanket Conflicts: src/gallium/drivers/svga/svga_screen_texture.c commit 4be2436316929e3dfc55bc34d810920c06556b66 Author: Keith Whitwell <keithw@vmware.com> Date: Thu Mar 4 14:59:26 2010 +0000 gallium: remove texture blanket call No longer needed, except for nouveau and egl/xll/native_ximage.c. Fix for nouveau is to keep the call, but move it to an internal function within nouveau. Fix for that egl/x11 relies on gallium-sw-api branch or its successor. commit 69b6764330367d63c237d0bde9fb96435d0e0257 Author: Keith Whitwell <keithw@vmware.com> Date: Thu Mar 4 13:35:16 2010 +0000 drm_api: wrap comment
2010-03-08Merge commit 'origin/gallium-winsys-handle-rebased'Keith Whitwell
2010-03-05nouveau: s/TEXTURE_USAGE_PRIMARY/TEXTURE_USAGE_SCANOUTChristoph Bumiller
2010-03-01nouveau: Rename pipe formats.José Fonseca
2010-02-04Nuke the nv0x-nv2x gallium pipe drivers.Francisco Jerez
2010-02-02gallium: pipe/p_inlines.h -> util/u_inlines.hJosé Fonseca
2009-12-28nouveau: Fix nv20-40 swizzled miptree RTsLuca Barbieri
I just coded a patch that does this and seems to work fine. It must be fixed since it breaks OpenGL (or the state tracker can be changed, but it seems better to do it in the driver). The patch also fixes NV20 and NV30 in the same way. They compile but are untested. I would guess that using the 3D engine is faster for the larger levels, but the 2D engine is faster for the smaller ones (and lacks this issue).
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-06nouveau: Work around nv04-nv40 miptrees not matching nouveau_miptree.Younes Manton
Thanks to Bob Gleitsmann for the patch. I'll clean this up in a better way later if noone else beats me to it.
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-01nouveau: Assume all texture blankets are linear for now.Younes Manton
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-25nouveau: nv04-nv40 texture transfer.Younes Manton
2009-02-11nouveau: 1xN, Nx1 levels of a swizzled mip tree shouldn't be aligned.Younes Manton
2009-02-10nouveau: nv40 swizzled mipmap fixes.Younes Manton
2009-02-06nouveau: Frontbuffer pitch needs to be set.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-10nouveau: Use PIPE_BUFFER_USAGE_CPU_* instead of custom.Younes Manton
2009-01-10nouveau: Put dynamic textures in GART for CPU access and don't swizzle.Younes Manton
Also flag shadows as dynamic since they're for CPU access as well.
2009-01-10nouveau: Swizzle textures larger than nv04 SIFM limit in parts.Younes Manton
Limit of SIFM on nv40 is 1024x1024, not sure about others.
2008-12-02nouveau: Calc pitch for swizzled textures appropriately.Younes Manton
2008-12-02nouveau: Use swizzled textures & render targets on nv40 when possible.Younes Manton
2008-11-10nv40: init pipe_surface correctlyBen Skeggs
2008-10-29nv40: rename some vars in texture layout codeBen Skeggs
2008-09-11nouveau: gallium directory structure changed again..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-04-04nouveau: in some cases don't create the buffer in local mem initially.Ben Skeggs
2008-03-21nv40: oopsBen Skeggs
2008-03-21nv40: s/free/FREE/Ben Skeggs
2008-03-21nv40: align each level to 64 pixelsBen Skeggs
2008-03-21nouveau: match gallium API changesBen Skeggs
2008-02-29nouveau: implement pipe_screenBen Skeggs
Untested on NV3x/NV5x. Quite possibly broken.
2008-02-22nouveau: fix buildBen Skeggs
2008-02-16nouveau: match gallium code reorginisation.Ben Skeggs
That was... fun..