Age | Commit message (Collapse) | Author |
|
|
|
The entrypoints take a mix of __DRIscreen * and void * (screen private)
arguments (similarly for contexts and drawables). This patch does away
with passing the private void pointer and always only passes the fully
typed __DRIscreen pointer and always as the first argument.
This makes the interface more consistent and increases type safety, and
catches a bug where we would pass a screen private to DRIdrawable::getSBC.
|
|
As for createDrawable and destroyDrawable, these functions immediately
upon entry to driCreateNewContext and immediately before exit from
driDestroyContext. Instead of passing function pointers back and forth
just obtain the drm_context_t prior to calling DRIscreen::createNewContext
and pass it as a parameter.
This change also lets us keep the DRI context XID in the libGL loader only.
|
|
All the DRI driver did was call the createDrawable callback immediately
upon entry to DRIscreen::createNewDrawable to get the drm_drawable_t.
We can just call that before calling into the DRI driver and pass the
returned drm_drawable_t as an argument to the DRI entry point.
Likewise for destroyDrawable.
Also, DRIdrawablePrivate::draw isn't used anywhere, and since the
driver no longer needs the XID of the drawable we can now drop that.
|
|
Many DRI entry points took a __DRInativeDisplay pointer and a screen
index as arguments. The only use for the native display pointer was to
pass it back to the loader when looking up the __DRIscreen for the given
screen index.
Instead, let's just pass in the __DRIscreen pointer directly, which
let's drop the __DRInativeDisplay type and the getScreen function.
The assumption is now that the loader will be able to retrieve context
from the __DRIscreen pointer when necessary.
|
|
remove unneeded entry points
|
|
|
|
gears now runs for about 10-15 seconds with some artifacts before falling
over.
|
|
|
|
This moves the relocations into the buffer manager in prepration for
a superioctl move.
|
|
|
|
While here, remove the unnecessary fence type saving for the wait ioctl, as
a 0 argument for type means "use your other saved copy".
|
|
|
|
|
|
Conflicts:
src/mesa/drivers/dri/common/dri_drmpool.c
src/mesa/drivers/dri/i915tex/i915_vtbl.c
src/mesa/drivers/dri/i915tex/intel_batchbuffer.c
src/mesa/drivers/dri/i915tex/intel_context.c
|
|
|
|
This removes the use of fake buffers from the driver, such that it could
probably be removed from the interface. It also should assist in proper
synchronization of access.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Not doing this could lead to double frees under rare circumstances.
|
|
|
|
|
|
git+ssh://people.freedesktop.org/~anholt/mesa into i915-unification
|
|
Specifically:
glVertexAttrib4bv
glVertexAttrib4iv
glVertexAttrib4ubv
glVertexAttrib4uiv
glVertexAttrib4usv
|
|
|
|
|
|
|
|
|
|
Now, allocations only take locations, rather than a variety of unused flags.
The only interesting flag before was the no_move/no_evict pair for scanout
and similar buffers, which the DRI drivers don't use. That will be readded
when we get to using this code for display buffer allocation, by adding a
pin/unpin call (dynamic pinning/unpinning may be useful for VT switching and
root window resizing).
This commit changes one instance of DRM_BO_FLAG_MEM_LOCAL with
DRM_BO_FLAG_MEM_TT, which appeared to have been unintentional.
|
|
Conflicts:
src/mesa/drivers/dri/i915tex/i830_texstate.c
src/mesa/drivers/dri/i915tex/i915_texstate.c
|
|
To be used by AIGLX for GLX_EXT_texture_from_pixmap without several
additional data copies.
|
|
Conflicts:
src/mesa/drivers/dri/common/dri_bufmgr.c
src/mesa/drivers/dri/common/dri_drmpool.c
src/mesa/drivers/dri/i915tex/intel_batchpool.c
src/mesa/drivers/dri/i915tex/intel_buffer_objects.c
src/mesa/drivers/dri/i915tex/intel_regions.c
src/mesa/drivers/dri/i915tex/intel_screen.c
src/mesa/drivers/dri/i915tex/intel_screen.h
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Shadow sampling from texture arrays is still not implemented. Everything
else should be there, though.
|
|
The interface is not solid yet (some simplification to do still, and
adjustment for 0-copy), and the drivers are not converted. However, the new
interface allows using the same calls to support either a TTM or a classic
static allocation backend, with the static backend allowing a more limited
feature set.
|
|
Don't place buffer objects on unfenced list when newly created.
Fix a buffer object wait-for-idle deadlock.
|
|
|
|
|
|
It is no longer linked with DRI drivers, libGL passes function pointers through
the DRI interface.
|