Age | Commit message (Collapse) | Author |
|
|
|
Previously draw module asked for a pointer into (mapped) vertex data,
which it would incrementally fill and emit draw commands against. This
was hard for the drivers to deal with, especially in the case where a
draw command would force a flush and thus an unmap of the vertex data.
With this change, the draw module explicitly maps & then unmaps vertex
data prior to emitting draw commands.
|
|
A lot more test programs work.
|
|
Missed these for the initial gallium-texture-transfer commit.
|
|
Make sure the stats for TGSI_FILE_IMMEDIATE are uptodate. Previously
we just had immediate_count, but file_*[TGSI_FILE_IMMEDIATE] were
bogus.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
Could this be the ultimate index list translating utility? Maybe, but it
doesn't yet include support for splitting primitives.
Unlike previous attempts, this captures all possible combinations of API
and hardware provoking vertex, supports generated list reuse and various
other tricks. Relies on python-generated code.
|
|
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.
|
|
|
|
|
|
|
|
forwards screen calls to the winsys
|
|
move it to pipe/internal/p_winsys_screen.h and start converting
the state trackers to the screen usage
|
|
|
|
|
|
|
|
|
|
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
|
|
A variation of malloc buffers which get transferred to real graphics memory
when there is an attempt to validate them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
Unfortunately both Mesa and Gallium use the same defines for memory
allocation (MALLOC, FREE, etc), and worse, some times memory is allocated
with one set and freed with the other set, causing the homegrown memory
debugger to trip on itself.
In the future mesa and gallium should use different names, but for now,
memory debugging on Windows will have to be carried with different tools..
|
|
May fail to parse otherwise.
|
|
|
|
|
|
|
|
|
|
|
|
When negating a src vector that's stored in a altivec register, need to put
negated value into a new register so we don't upset the original value.
This solves the dark colors in the mandelbrot GLSL demo.
Also, use new predicate functions to check if a TGSI temp is stored in
an altivec register.
|