summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-03-04 15:23:35 +0000
committerJosé Fonseca <jfonseca@vmware.com>2009-03-04 15:23:35 +0000
commit5b04939b16eb6e13858b070315dee1d0fc09d94f (patch)
tree0f8739ea6fa7219eaebbb9ff090f86713ef820e0 /src/gallium/state_trackers
parentcfd5298f240612ef69ae321aebbc425710a8d731 (diff)
parentf9ce417aaf14c00e72e92307b910de5dbed1bb6d (diff)
Merge commit 'origin/master' into gallium-map-range
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r--src/gallium/state_trackers/dri2/dri_context.c6
-rw-r--r--src/gallium/state_trackers/dri2/dri_drawable.c74
-rw-r--r--src/gallium/state_trackers/dri2/dri_drawable.h5
-rw-r--r--src/gallium/state_trackers/dri2/dri_screen.c21
-rw-r--r--src/gallium/state_trackers/egl/egl_context.c2
-rw-r--r--src/gallium/state_trackers/egl/egl_surface.c9
-rw-r--r--src/gallium/state_trackers/egl/egl_tracker.c2
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_basic_csc.c6
-rw-r--r--src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf.c8
-rw-r--r--src/gallium/state_trackers/python/st_device.c24
-rw-r--r--src/gallium/state_trackers/python/st_device.h6
-rw-r--r--src/gallium/state_trackers/python/st_softpipe_winsys.c4
-rw-r--r--src/gallium/state_trackers/wgl/shared/stw_pixelformat.c12
-rw-r--r--src/gallium/state_trackers/xorg/xorg_crtc.c6
-rw-r--r--src/gallium/state_trackers/xorg/xorg_dri2.c6
-rw-r--r--src/gallium/state_trackers/xorg/xorg_driver.c2
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.c18
17 files changed, 122 insertions, 89 deletions
diff --git a/src/gallium/state_trackers/dri2/dri_context.c b/src/gallium/state_trackers/dri2/dri_context.c
index a8a94be176..92c26ac70f 100644
--- a/src/gallium/state_trackers/dri2/dri_context.c
+++ b/src/gallium/state_trackers/dri2/dri_context.c
@@ -71,12 +71,13 @@ dri_create_context(const __GLcontextModes *visual,
sPriv->myNum,
"dri");
- ctx->pipe = drm_api_hocks.create_context(screen->pipe_screen);
+ ctx->pipe = drm_api_hooks.create_context(screen->pipe_screen);
if (ctx->pipe == NULL)
goto fail;
- ctx->pipe->priv = ctx; /* I guess */
+ /* used in dri_flush_frontbuffer */
+ ctx->pipe->priv = ctx;
ctx->st = st_create_context(ctx->pipe, visual, st_share);
if (ctx->st == NULL)
@@ -152,6 +153,7 @@ dri_make_current(__DRIcontextPrivate *cPriv,
draw->stfb,
read->stfb);
+ /* used in dri_flush_frontbuffer */
ctx->dPriv = driDrawPriv;
if (driDrawPriv)
diff --git a/src/gallium/state_trackers/dri2/dri_drawable.c b/src/gallium/state_trackers/dri2/dri_drawable.c
index 120d45bc03..aa86411190 100644
--- a/src/gallium/state_trackers/dri2/dri_drawable.c
+++ b/src/gallium/state_trackers/dri2/dri_drawable.c
@@ -44,6 +44,15 @@
#include "util/u_memory.h"
+static void
+dri_copy_to_front(__DRIdrawablePrivate *dPriv,
+ struct pipe_surface *from,
+ int x, int y, unsigned w, unsigned h)
+{
+ /* TODO send a message to the Xserver to copy to the real front buffer */
+}
+
+
static struct pipe_surface *
dri_surface_from_handle(struct pipe_screen *screen,
unsigned handle,
@@ -57,7 +66,7 @@ dri_surface_from_handle(struct pipe_screen *screen,
struct pipe_texture templat;
struct pipe_buffer *buf = NULL;
- buf = drm_api_hocks.buffer_from_handle(screen, "dri2 buffer", handle);
+ buf = drm_api_hooks.buffer_from_handle(screen, "dri2 buffer", handle);
if (!buf)
return NULL;
@@ -77,7 +86,7 @@ dri_surface_from_handle(struct pipe_screen *screen,
buf);
/* we don't need the buffer from this point on */
- pipe_buffer_reference(screen, &buf, NULL);
+ pipe_buffer_reference(&buf, NULL);
if (!texture)
return NULL;
@@ -144,6 +153,10 @@ dri_get_buffers(__DRIdrawablePrivate *dPriv)
index = ST_SURFACE_FRONT_LEFT;
format = PIPE_FORMAT_A8R8G8B8_UNORM;
break;
+ case __DRI_BUFFER_FAKE_FRONT_LEFT:
+ index = ST_SURFACE_FRONT_LEFT;
+ format = PIPE_FORMAT_A8R8G8B8_UNORM;
+ break;
case __DRI_BUFFER_BACK_LEFT:
index = ST_SURFACE_BACK_LEFT;
format = PIPE_FORMAT_A8R8G8B8_UNORM;
@@ -185,50 +198,28 @@ dri_get_buffers(__DRIdrawablePrivate *dPriv)
void
+dri_flush_frontbuffer(struct pipe_screen *screen,
+ struct pipe_surface *surf,
+ void *context_private)
+{
+ struct dri_context *ctx = (struct dri_context *)context_private;
+ dri_copy_to_front(ctx->dPriv, surf, 0, 0, surf->width, surf->height);
+}
+
+
+void
dri_swap_buffers(__DRIdrawablePrivate * dPriv)
{
- struct dri_drawable *drawable = dri_drawable(dPriv);
- struct pipe_surface *back_surf;
-
- assert(drawable);
- assert(drawable->stfb);
-
- st_get_framebuffer_surface(drawable->stfb,
- ST_SURFACE_BACK_LEFT,
- &back_surf);
- if (back_surf) {
- st_notify_swapbuffers(drawable->stfb);
- /* TODO do stuff here */
- st_notify_swapbuffers_complete(drawable->stfb);
- }
+ /* not needed for dri2 */
+ assert(0);
}
-/**
- * Called via glXCopySubBufferMESA() to copy a subrect of the back
- * buffer to the front buffer/screen.
- */
void
dri_copy_sub_buffer(__DRIdrawablePrivate * dPriv, int x, int y, int w, int h)
{
- struct dri_drawable *drawable = dri_drawable(dPriv);
- struct pipe_surface *back_surf;
-
- assert(drawable);
- assert(drawable->stfb);
-
- st_get_framebuffer_surface(drawable->stfb,
- ST_SURFACE_BACK_LEFT,
- &back_surf);
- if (back_surf) {
- drm_clip_rect_t rect;
- rect.x1 = x;
- rect.y1 = y;
- rect.x2 = w;
- rect.y2 = h;
-
- /* do stuff here */
- }
+ /* not needed for dri2 */
+ assert(0);
}
@@ -288,7 +279,12 @@ dri_create_buffer(__DRIscreenPrivate *sPriv,
/* setup dri2 buffers information */
i = 0;
drawable->attachments[i++] = __DRI_BUFFER_FRONT_LEFT;
- drawable->attachments[i++] = __DRI_BUFFER_BACK_LEFT;
+#if 0
+ /* TODO incase of double buffer visual, delay fake creation */
+ drawable->attachments[i++] = __DRI_BUFFER_FAKE_FRONT_LEFT;
+#endif
+ if (visual->doubleBufferMode)
+ drawable->attachments[i++] = __DRI_BUFFER_BACK_LEFT;
if (visual->depthBits)
drawable->attachments[i++] = __DRI_BUFFER_DEPTH;
if (visual->stencilBits)
diff --git a/src/gallium/state_trackers/dri2/dri_drawable.h b/src/gallium/state_trackers/dri2/dri_drawable.h
index d40d09c9b5..185c657b35 100644
--- a/src/gallium/state_trackers/dri2/dri_drawable.h
+++ b/src/gallium/state_trackers/dri2/dri_drawable.h
@@ -66,6 +66,11 @@ dri_create_buffer(__DRIscreenPrivate *sPriv,
boolean isPixmap);
void
+dri_flush_frontbuffer(struct pipe_screen *screen,
+ struct pipe_surface *surf,
+ void *context_private);
+
+void
dri_swap_buffers(__DRIdrawablePrivate * dPriv);
void
diff --git a/src/gallium/state_trackers/dri2/dri_screen.c b/src/gallium/state_trackers/dri2/dri_screen.c
index 1fef538294..ab5878a4bc 100644
--- a/src/gallium/state_trackers/dri2/dri_screen.c
+++ b/src/gallium/state_trackers/dri2/dri_screen.c
@@ -184,6 +184,16 @@ dri_get_swap_info(__DRIdrawablePrivate * dPriv,
/**
+ * NULL stub for old dri loaders
+ */
+const __DRIconfig **
+dri_init_screen(__DRIscreenPrivate *sPriv)
+{
+ return NULL;
+}
+
+
+/**
* This is the driver specific part of the createNewScreen entry point.
*
* Returns the __GLcontextModes supported by this driver.
@@ -208,12 +218,15 @@ dri_init_screen2(__DRIscreenPrivate *sPriv)
sPriv->extensions = dri_screen_extensions;
- screen->pipe_screen = drm_api_hocks.create_screen(screen->fd, screen->deviceID);
+ screen->pipe_screen = drm_api_hooks.create_screen(screen->fd, screen->deviceID);
if (!screen->pipe_screen) {
debug_printf("%s: failed to create pipe_screen\n", __FUNCTION__);
goto fail;
}
+ /* We need to hook in here */
+ screen->pipe_screen->flush_frontbuffer = dri_flush_frontbuffer;
+
driParseOptionInfo(&screen->optionCache,
__driConfigOptions,
__driNConfigOptions);
@@ -240,19 +253,19 @@ dri_destroy_screen(__DRIscreenPrivate * sPriv)
PUBLIC const struct __DriverAPIRec driDriverAPI = {
- .InitScreen = NULL,
+ .InitScreen = dri_init_screen, /* not supported but exported */
.DestroyScreen = dri_destroy_screen,
.CreateContext = dri_create_context,
.DestroyContext = dri_destroy_context,
.CreateBuffer = dri_create_buffer,
.DestroyBuffer = dri_destroy_buffer,
- .SwapBuffers = dri_swap_buffers,
+ .SwapBuffers = dri_swap_buffers, /* not supported but exported */
.MakeCurrent = dri_make_current,
.UnbindContext = dri_unbind_context,
.GetSwapInfo = dri_get_swap_info,
.GetDrawableMSC = driDrawableGetMSC32,
.WaitForMSC = driWaitForMSC32,
- .CopySubBuffer = dri_copy_sub_buffer,
+ .CopySubBuffer = dri_copy_sub_buffer, /* not supported but exported */
.InitScreen2 = dri_init_screen2,
};
diff --git a/src/gallium/state_trackers/egl/egl_context.c b/src/gallium/state_trackers/egl/egl_context.c
index 8564972b91..36548fae26 100644
--- a/src/gallium/state_trackers/egl/egl_context.c
+++ b/src/gallium/state_trackers/egl/egl_context.c
@@ -115,7 +115,7 @@ drm_create_context(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config, EGLContext
_eglInitContext(drv, dpy, &ctx->base, config, attrib_list);
- ctx->pipe = drm_api_hocks.create_context(dev->screen);
+ ctx->pipe = drm_api_hooks.create_context(dev->screen);
if (!ctx->pipe)
goto err_pipe;
diff --git a/src/gallium/state_trackers/egl/egl_surface.c b/src/gallium/state_trackers/egl/egl_surface.c
index aa3c32d41c..b8d5f4217f 100644
--- a/src/gallium/state_trackers/egl/egl_surface.c
+++ b/src/gallium/state_trackers/egl/egl_surface.c
@@ -132,7 +132,7 @@ drm_create_texture(_EGLDriver *drv,
scrn->front.width = w;
scrn->front.height = h;
scrn->front.pitch = pitch;
- drm_api_hocks.handle_from_buffer(dev->winsys, scrn->buffer, &scrn->front.handle);
+ drm_api_hooks.handle_from_buffer(screen, scrn->buffer, &scrn->front.handle);
if (0)
goto err_handle;
@@ -143,7 +143,7 @@ err_handle:
err_surf:
pipe_texture_reference(&texture, NULL);
err_tex:
- pipe_buffer_reference(screen, &buf, NULL);
+ pipe_buffer_reference(&buf, NULL);
err_buf:
return;
}
@@ -173,7 +173,7 @@ drm_takedown_shown_screen(_EGLDriver *drv, struct drm_screen *screen)
pipe_surface_reference(&screen->surface, NULL);
pipe_texture_reference(&screen->tex, NULL);
- pipe_buffer_reference(dev->screen, &screen->buffer, NULL);
+ pipe_buffer_reference(&screen->buffer, NULL);
screen->shown = 0;
}
@@ -271,7 +271,6 @@ drm_show_screen_surface_mesa(_EGLDriver *drv, EGLDisplay dpy,
struct drm_device *dev = (struct drm_device *)drv;
struct drm_surface *surf = lookup_drm_surface(surface);
struct drm_screen *scrn = lookup_drm_screen(dpy, screen);
- struct pipe_context *pipe;
_EGLMode *mode = _eglLookupMode(dpy, m);
int ret;
unsigned int i, k;
@@ -349,7 +348,7 @@ err_fb:
err_bo:
pipe_surface_reference(&scrn->surface, NULL);
pipe_texture_reference(&scrn->tex, NULL);
- pipe_buffer_reference(dev->screen, &scrn->buffer, NULL);
+ pipe_buffer_reference(&scrn->buffer, NULL);
return EGL_FALSE;
}
diff --git a/src/gallium/state_trackers/egl/egl_tracker.c b/src/gallium/state_trackers/egl/egl_tracker.c
index 2813bf4360..a22ef381b9 100644
--- a/src/gallium/state_trackers/egl/egl_tracker.c
+++ b/src/gallium/state_trackers/egl/egl_tracker.c
@@ -121,7 +121,7 @@ drm_initialize(_EGLDriver *drv, EGLDisplay dpy, EGLint *major, EGLint *minor)
dev->drmFD = fd;
drm_get_device_id(dev);
- dev->screen = drm_api_hocks.create_screen(dev->drmFD, dev->deviceID);
+ dev->screen = drm_api_hooks.create_screen(dev->drmFD, dev->deviceID);
if (!dev->screen)
goto err_screen;
dev->winsys = dev->screen->winsys;
diff --git a/src/gallium/state_trackers/g3dvl/vl_basic_csc.c b/src/gallium/state_trackers/g3dvl/vl_basic_csc.c
index 187a13a560..38cfd5d7f1 100644
--- a/src/gallium/state_trackers/g3dvl/vl_basic_csc.c
+++ b/src/gallium/state_trackers/g3dvl/vl_basic_csc.c
@@ -237,10 +237,10 @@ static int vlDestroy
pipe->delete_fs_state(pipe, basic_csc->fragment_shader);
for (i = 0; i < 2; ++i)
- pipe_buffer_reference(pipe->screen, &basic_csc->vertex_bufs[i].buffer, NULL);
+ pipe_buffer_reference(&basic_csc->vertex_bufs[i].buffer, NULL);
- pipe_buffer_reference(pipe->screen, &basic_csc->vs_const_buf.buffer, NULL);
- pipe_buffer_reference(pipe->screen, &basic_csc->fs_const_buf.buffer, NULL);
+ pipe_buffer_reference(&basic_csc->vs_const_buf.buffer, NULL);
+ pipe_buffer_reference(&basic_csc->fs_const_buf.buffer, NULL);
FREE(basic_csc);
diff --git a/src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf.c b/src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf.c
index 7cd753f736..eb8270ecad 100644
--- a/src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf.c
+++ b/src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf.c
@@ -636,7 +636,7 @@ static int vlFlush
for (i = 0; i < 3; ++i)
{
pipe->screen->transfer_unmap(pipe->screen, mc->tex_transfer[i]);
- pipe->screen->tex_transfer_release(pipe->screen, &mc->tex_transfer[i]);
+ pipe->screen->tex_transfer_destroy(mc->tex_transfer[i]);
}
mc->render_target.cbufs[0] = pipe->screen->get_tex_surface
@@ -856,7 +856,7 @@ static int vlDestroy
pipe->delete_sampler_state(pipe, mc->samplers.all[i]);
for (i = 0; i < 3; ++i)
- pipe_buffer_reference(pipe->screen, &mc->vertex_bufs.all[i].buffer, NULL);
+ pipe_buffer_reference(&mc->vertex_bufs.all[i].buffer, NULL);
/* Textures 3 & 4 are not created directly, no need to release them here */
for (i = 0; i < 3; ++i)
@@ -873,8 +873,8 @@ static int vlDestroy
pipe->delete_fs_state(pipe, mc->b_fs[i]);
}
- pipe_buffer_reference(pipe->screen, &mc->vs_const_buf.buffer, NULL);
- pipe_buffer_reference(pipe->screen, &mc->fs_const_buf.buffer, NULL);
+ pipe_buffer_reference(&mc->vs_const_buf.buffer, NULL);
+ pipe_buffer_reference(&mc->fs_const_buf.buffer, NULL);
FREE(mc->macroblocks);
FREE(mc);
diff --git a/src/gallium/state_trackers/python/st_device.c b/src/gallium/state_trackers/python/st_device.c
index 20dd8d269d..a2cd25067d 100644
--- a/src/gallium/state_trackers/python/st_device.c
+++ b/src/gallium/state_trackers/python/st_device.c
@@ -51,11 +51,20 @@ st_device_really_destroy(struct st_device *st_dev)
}
+static void
+st_device_reference(struct st_device **ptr, struct st_device *st_dev)
+{
+ struct st_device *old_dev = *ptr;
+
+ if (pipe_reference((struct pipe_reference **)ptr, &st_dev->reference))
+ st_device_really_destroy(old_dev);
+}
+
+
void
st_device_destroy(struct st_device *st_dev)
{
- if(!--st_dev->refcount)
- st_device_really_destroy(st_dev);
+ st_device_reference(&st_dev, NULL);
}
@@ -72,7 +81,7 @@ st_device_create_from_st_winsys(const struct st_winsys *st_ws)
if(!st_dev)
return NULL;
- st_dev->refcount = 1;
+ pipe_reference_init(&st_dev->reference, 1);
st_dev->st_ws = st_ws;
st_dev->real_screen = st_ws->screen_create();
@@ -124,8 +133,7 @@ st_context_destroy(struct st_context *st_ctx)
FREE(st_ctx);
- if(!--st_dev->refcount)
- st_device_really_destroy(st_dev);
+ st_device_reference(&st_dev, NULL);
}
}
@@ -139,8 +147,7 @@ st_context_create(struct st_device *st_dev)
if(!st_ctx)
return NULL;
- st_ctx->st_dev = st_dev;
- ++st_dev->refcount;
+ st_device_reference(&st_ctx->st_dev, st_dev);
st_ctx->real_pipe = st_dev->st_ws->context_create(st_dev->real_screen);
if(!st_ctx->real_pipe) {
@@ -292,8 +299,7 @@ void
st_buffer_destroy(struct st_buffer *st_buf)
{
if(st_buf) {
- struct pipe_screen *screen = st_buf->st_dev->screen;
- pipe_buffer_reference(screen, &st_buf->buffer, NULL);
+ pipe_buffer_reference(&st_buf->buffer, NULL);
FREE(st_buf);
}
}
diff --git a/src/gallium/state_trackers/python/st_device.h b/src/gallium/state_trackers/python/st_device.h
index 7cfe6de9f6..0641aff149 100644
--- a/src/gallium/state_trackers/python/st_device.h
+++ b/src/gallium/state_trackers/python/st_device.h
@@ -68,13 +68,13 @@ struct st_context {
struct st_device {
+ /* FIXME: we also need to refcount for textures and surfaces... */
+ struct pipe_reference reference;
+
const struct st_winsys *st_ws;
struct pipe_screen *real_screen;
struct pipe_screen *screen;
-
- /* FIXME: we also need to refcount for textures and surfaces... */
- unsigned refcount;
};
diff --git a/src/gallium/state_trackers/python/st_softpipe_winsys.c b/src/gallium/state_trackers/python/st_softpipe_winsys.c
index 4d798df99b..426f347d18 100644
--- a/src/gallium/state_trackers/python/st_softpipe_winsys.c
+++ b/src/gallium/state_trackers/python/st_softpipe_winsys.c
@@ -124,7 +124,7 @@ st_softpipe_buffer_create(struct pipe_winsys *winsys,
{
struct st_softpipe_buffer *buffer = CALLOC_STRUCT(st_softpipe_buffer);
- buffer->base.refcount = 1;
+ pipe_reference_init(&buffer->base.reference, 1);
buffer->base.alignment = alignment;
buffer->base.usage = usage;
buffer->base.size = size;
@@ -149,7 +149,7 @@ st_softpipe_user_buffer_create(struct pipe_winsys *winsys,
if(!buffer)
return NULL;
- buffer->base.refcount = 1;
+ pipe_reference_init(&buffer->base.reference, 1);
buffer->base.size = bytes;
buffer->userBuffer = TRUE;
buffer->data = ptr;
diff --git a/src/gallium/state_trackers/wgl/shared/stw_pixelformat.c b/src/gallium/state_trackers/wgl/shared/stw_pixelformat.c
index 5cfdd41597..2992a1ac0a 100644
--- a/src/gallium/state_trackers/wgl/shared/stw_pixelformat.c
+++ b/src/gallium/state_trackers/wgl/shared/stw_pixelformat.c
@@ -76,6 +76,18 @@ add_standard_pixelformats(
pf->flags = flags;
pf->color = color24;
+ pf->alpha = alpha8;
+ pf->depth = depth16;
+ pf++;
+
+ pf->flags = flags;
+ pf->color = color24;
+ pf->alpha = alpha8;
+ pf->depth = depth24s8;
+ pf++;
+
+ pf->flags = flags;
+ pf->color = color24;
pf->alpha = noalpha;
pf->depth = depth16;
pf++;
diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c b/src/gallium/state_trackers/xorg/xorg_crtc.c
index 0765f56ee1..7304113a65 100644
--- a/src/gallium/state_trackers/xorg/xorg_crtc.c
+++ b/src/gallium/state_trackers/xorg/xorg_crtc.c
@@ -175,7 +175,7 @@ crtc_destroy(xf86CrtcPtr crtc)
struct crtc_private *crtcp = crtc->driver_private;
if (crtcp->cursor_buf)
- pipe_buffer_reference(ms->screen, &crtcp->cursor_buf, NULL);
+ pipe_buffer_reference(&crtcp->cursor_buf, NULL);
drmModeFreeCrtc(crtcp->drm_crtc);
xfree(crtcp);
@@ -194,7 +194,7 @@ crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 * image)
PIPE_BUFFER_USAGE_CPU_WRITE |
PIPE_BUFFER_USAGE_GPU_READ,
64*64*4);
- drm_api_hocks.handle_from_buffer(ms->screen,
+ drm_api_hooks.handle_from_buffer(ms->screen,
crtcp->cursor_buf,
&crtcp->cursor_handle);
}
@@ -266,7 +266,7 @@ cursor_destroy(xf86CrtcPtr crtc)
struct crtc_private *crtcp = crtc->driver_private;
if (crtcp->cursor_buf) {
- pipe_buffer_reference(ms->screen, &crtcp->cursor_buf, NULL);
+ pipe_buffer_reference(&crtcp->cursor_buf, NULL);
}
}
diff --git a/src/gallium/state_trackers/xorg/xorg_dri2.c b/src/gallium/state_trackers/xorg/xorg_dri2.c
index 72b333eaf1..b9993b1ea1 100644
--- a/src/gallium/state_trackers/xorg/xorg_dri2.c
+++ b/src/gallium/state_trackers/xorg/xorg_dri2.c
@@ -109,8 +109,8 @@ driCreateBuffers(DrawablePtr pDraw, unsigned int *attachments, int count)
tex = ms->screen->texture_create(ms->screen, &template);
}
- drm_api_hocks.buffer_from_texture(tex, &buf, &stride);
- drm_api_hocks.global_handle_from_buffer(ms->screen, buf, &handle);
+ drm_api_hooks.buffer_from_texture(tex, &buf, &stride);
+ drm_api_hooks.global_handle_from_buffer(ms->screen, buf, &handle);
buffers[i].name = handle;
buffers[i].attachment = attachments[i];
@@ -147,7 +147,7 @@ driDestroyBuffers(DrawablePtr pDraw, DRI2BufferPtr buffers, int count)
(*pScreen->DestroyPixmap)(private->pPixmap);
pipe_texture_reference(&private->tex, NULL);
- pipe_buffer_reference(ms->screen, &private->buf, NULL);
+ pipe_buffer_reference(&private->buf, NULL);
}
if (buffers) {
diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c
index d166a365ac..8a2711e70c 100644
--- a/src/gallium/state_trackers/xorg/xorg_driver.c
+++ b/src/gallium/state_trackers/xorg/xorg_driver.c
@@ -476,7 +476,7 @@ ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
}
if (!ms->screen) {
- ms->screen = drm_api_hocks.create_screen(ms->fd, ms->PciInfo->device_id);
+ ms->screen = drm_api_hooks.create_screen(ms->fd, ms->PciInfo->device_id);
if (!ms->screen) {
FatalError("Could not init pipe_screen\n");
diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
index ac0bfc88a4..e53b46c3ad 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -147,7 +147,7 @@ ExaFinishAccess(PixmapPtr pPix, int index)
return;
exa->scrn->transfer_unmap(exa->scrn, priv->map_transfer);
- pipe_transfer_reference(&priv->map_transfer, NULL);
+ exa->scrn->tex_transfer_destroy(priv->map_transfer);
}
@@ -163,7 +163,7 @@ ExaDone(PixmapPtr pPixmap)
return;
if (priv->src_surf)
- exa->scrn->tex_surface_release(exa->scrn, &priv->src_surf);
+ exa->scrn->tex_surface_destroy(priv->src_surf);
priv->src_surf = NULL;
}
@@ -219,7 +219,7 @@ ExaSolid(PixmapPtr pPixmap, int x0, int y0, int x1, int y1)
exa->ctx->surface_fill(exa->ctx, surf, x0, y0, x1 - x0, y1 - y0,
priv->color);
- exa->scrn->tex_surface_release(exa->scrn, &surf);
+ exa->scrn->tex_surface_destroy(surf);
}
static Bool
@@ -276,7 +276,7 @@ ExaCopy(PixmapPtr pDstPixmap, int srcX, int srcY, int dstX, int dstY,
exa->ctx->surface_copy(exa->ctx, 0, surf, dstX, dstY, priv->src_surf,
srcX, srcY, width, height);
- exa->scrn->tex_surface_release(exa->scrn, &surf);
+ exa->scrn->tex_surface_destroy(surf);
}
static Bool
@@ -336,7 +336,7 @@ ExaDestroyPixmap(ScreenPtr pScreen, void *dPriv)
return;
if (priv->tex)
- ms->screen->texture_release(exa->scrn, &priv->tex);
+ ms->screen->texture_destroy(priv->tex);
xfree(priv);
}
@@ -380,9 +380,9 @@ xorg_exa_get_pixmap_handle(PixmapPtr pPixmap)
return 0;
}
- drm_api_hocks.buffer_from_texture(priv->tex, &buffer, &stride);
- drm_api_hocks.handle_from_buffer(ms->screen, buffer, &handle);
- pipe_buffer_reference(ms->screen, &buffer, NULL);
+ drm_api_hooks.buffer_from_texture(priv->tex, &buffer, &stride);
+ drm_api_hooks.handle_from_buffer(ms->screen, buffer, &handle);
+ pipe_buffer_reference(&buffer, NULL);
return handle;
}
@@ -519,7 +519,7 @@ xorg_exa_init(ScrnInfoPtr pScrn)
}
exa->scrn = ms->screen;
- exa->ctx = drm_api_hocks.create_context(exa->scrn);
+ exa->ctx = drm_api_hooks.create_context(exa->scrn);
/* Share context with DRI */
ms->ctx = exa->ctx;