Commit graph

27 commits

Author SHA1 Message Date
Ben Skeggs
32da02f7c1 st/dri: update dri2 drawables when viewport is changed
Fixes gnome-shell on nouveau, as well as window resize with various
other applications.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2010-01-11 11:44:38 +10:00
Younes Manton
f547472bfa g3dvl: pipe_video_context interface, softpipe impl, auxiliary libs 2009-09-27 19:49:06 -04:00
Jakob Bornecrantz
a41a253ce3 gallium: Add texture usage information to surface_buffer_create
We need aditional meta data about the usage of the surface
	in softpipe because we need to be able tell the diffrence
	between PRIMARY and DISPLAY_TARGET surfaces.
2009-08-11 18:34:43 +01:00
José Fonseca
4ffe2844a4 gallium: New PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag for buffer_flush_mapped_range.
When a buffer was mapped for write and no explicit flush range was provided
the existing semantics were that the whole buffer would be flushed, mostly
for backwards compatability with non map-buffer-range aware code.

However if the buffer was mapped/unmapped with nothing really written --
something that often happens with the vbo -- we were unnecessarily assuming
that the whole buffer was written.

The new PIPE_BUFFER_USAGE_FLUSH_EXPLICIT flag (based from ARB_map_buffer_range
's GL_MAP_FLUSH_EXPLICIT_BIT flag) allows to clearly distinguish the
legacy usage from the nothing written usage.
2009-06-30 15:33:53 +01:00
Brian Paul
985e71866a gallium: updated comments in p_screen.h 2009-04-09 16:03:50 -06:00
José Fonseca
7ea265888f gallium: Use "flags" consistently. 2009-04-09 21:26:15 +01:00
José Fonseca
48f6e75489 gallium: Explain what happens if buffer_flush_mapped_range isn't called. 2009-03-20 18:34:24 +00:00
José Fonseca
2a1f29c220 gallium: Use consistent semantics for map ranges in gallium.
Which are slightly different from ARB_map_buffer_range semantics, since
gallium still supports more than one mapping of the same buffer.
2009-03-04 17:48:26 +00:00
José Fonseca
5b04939b16 Merge commit 'origin/master' into gallium-map-range 2009-03-04 15:23:35 +00:00
Michel Dänzer
5e27cd46c0 gallium: Unify reference counting.
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-03-04 11:58:48 +01:00
José Fonseca
190db8b4c3 gallium: Massage the interface to more closely resemble ARB_map_buffer_range 2009-03-03 18:52:16 +00:00
José Fonseca
60e5fe6506 gallium: Allow to specify how much will be read / was written in buffer map/unmap.
This allows the pipe driver to do more efficient DMA upload/downloads, by
avoiding to read/write unneeded/unmodified data.
2009-02-24 12:29:09 +00:00
Keith Whitwell
59d54334c9 Merge branch 'master' into gallium-texture-transfer
Conflicts:

	src/mesa/state_tracker/st_cb_accum.c
	src/mesa/state_tracker/st_cb_drawpixels.c
2009-02-16 19:50:48 +00:00
Michel Dänzer
4617981ec7 gallium: No longer allow CPU mapping surfaces directly.
Instead, a new pipe_transfer object has to be created and mapped for
transferring data between the CPU and a texture. This gives the driver more
flexibility for textures in address spaces that aren't CPU accessible.

This is a first pass; softpipe/xlib builds and runs glxgears, but it only shows
a black window. Looks like something's off related to the Z buffer, so the
depth test always fails.
2009-02-05 19:41:18 +01:00
Brian Paul
099e9d20f0 gallium: fixup #includes: p_screen.h does not need anything in p_state.h 2009-02-05 08:23:00 -07:00
Brian Paul
0703b2e9ad gallium: move 'struct pipe_winsys'
Not used in p_state.h but used in p_context.h and p_screen.h
2009-02-05 08:16:56 -07:00
Zack Rusin
26c9b15343 gallium: add a convience wrapper for simple screens
forwards screen calls to the winsys
2009-01-30 17:59:55 -05:00
Zack Rusin
adfbba476d gallium: make p_winsys internal
move it to pipe/internal/p_winsys_screen.h and start converting
the state trackers to the screen usage
2009-01-30 15:57:33 -05:00
Zack Rusin
b3028acd98 gallium: give the screen priority when it comes to buffer allocations
allows the driver to overwrite buffer allocation, first step on the way
to making winsys interface internal to the drivers. state trackers and
the code above it will go through the screen
2009-01-29 21:43:15 -05:00
Zack Rusin
872b515e8f gallium: standardize on stride instead of pitch in the interface 2009-01-27 12:20:25 -05:00
José Fonseca
984a7c4e9c gallium: Fix doxygen comments. 2008-09-19 10:40:42 +09:00
José Fonseca
8aafc03b26 gallium: Finer grained is_format_supported. 2008-07-19 12:32:29 +09:00
José Fonseca
6361d6f48d gallium: New pipe_screen interface to overlay a texture on existing memory. 2008-05-06 14:57:18 +09:00
Keith Whitwell
c9ed86a964 gallium: tex surface checkpoint 2008-05-01 12:00:45 +01:00
Brian Paul
aad9dd14d8 gallium: tweak comments, minor var renaming 2008-04-25 16:27:52 -06:00
Brian Paul
419248b528 gallium: document is_format_supported()'s type param 2008-03-21 11:06:52 -06:00
Brian
aa59a937cc gallium: introduce 'pipe_screen' for context-independent functions
This will allow creating textures before a rendering context exists, for example.
Only implemented in i915 driver for now.  i915pipe->texture_create() just
dispatches through to the i915screen->texture_create() to avoid state tracker
changes for now.
2008-02-26 20:15:14 -07:00