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.
|
|
The screenConfigs field of __DRIscreen points back to the containing
__GLXscreenConfigs struct. This is a serious abstraction violation; it
assumes that the loader is libGL and that there *is* a __GLXscreenConfigs
type in the loader.
Using the containerOf macro, we can get from the __DRIscreen pointer to
the containing __GLXscreenConfigs struct, at a place in the stack
where the above is a valid assumption. Besides, the __DRI* structs shouldn't
hold state other than the private pointer.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
1. spec requite result (0, 0, 0, 1) instead of (0, 0, 0, 0)
2. support shadow sampler in simd8
|
|
|
|
remove unneeded entry points
|
|
|
|
|
|
|
|
|
|
If this proves a win later we can add it back but at the moment
I don't think it's required yet
|
|
also fix a use of uninitialised pointer
|
|
|
|
|
|
|
|
In the process, fix some alignment issues:
- Scratch space allocation was aligned into units of 1KB, while the allocation
wanted units of bytes, so we never allocated enough space for scratch.
- GRF register count was programmed as ALIGN(val - 1, 16) / 16 instead of
ALIGN(val, 16) / 16 - 1, which overcounted for val != 16n+1.
|
|
This is in preparation for 965 TTM.
|
|
|
|
OUT_BATCH is far more amenable to the upcoming relocations being done for TTM
support.
|
|
|
|
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.
|
|
|
|
|
|
|
|
Implementation guidance by Michel Dänzer, final testing by Timo Aaltonen.
|
|
|
|
|
|
EXT_blend_logic_op is slightly different from GL 1.1's RGBA logicop mode
and does not have to be supported. Per conversation with Roland.
|
|
This field shouldn't have been renamed in the first place. Go back to using
the old name so that the tree is backward and forward compatible again.
|
|
|
|
|
|
|
|
This reverts commit b2f1aa2389473ed09170713301b042661d70a48e.
Somehow I ended up with my branch's save-this-while-I-work-on-master commit
actually on master.
|
|
|
|
This code existed to dump logs of hardware access to be replayed in simulation.
Since we have real hardware now, it's not really needed.
|
|
|