rpms/xorg-x11-drv-ati/devel radeon-modeset.patch, 1.25, 1.26 xorg-x11-drv-ati.spec, 1.132, 1.133
Dave Airlie
airlied at fedoraproject.org
Mon Oct 27 21:00:49 UTC 2008
- Previous message: rpms/xfwm4/devel .cvsignore, 1.10, 1.11 sources, 1.10, 1.11 xfwm4.spec, 1.25, 1.26
- Next message: rpms/selinux-policy/devel policy-20080710.patch, 1.76, 1.77 selinux-policy.spec, 1.734, 1.735
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17520
Modified Files:
radeon-modeset.patch xorg-x11-drv-ati.spec
Log Message:
- add support for wait for rendering
radeon-modeset.patch:
Index: radeon-modeset.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/radeon-modeset.patch,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- radeon-modeset.patch 27 Oct 2008 06:56:03 -0000 1.25
+++ radeon-modeset.patch 27 Oct 2008 21:00:49 -0000 1.26
@@ -1,3 +1,9 @@
+commit 17b7b76a702640462a3878ae745fd1f5ddd32f19
+Author: Dave Airlie <airlied at redhat.com>
+Date: Tue Oct 28 06:40:31 2008 +1000
+
+ radeon: enable gem wait rendering.
+
commit 2171a9d834be69e002a93fe440450ff532758e93
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Oct 27 16:51:00 2008 +1000
@@ -2447,10 +2453,10 @@
+#endif
diff --git a/src/radeon_bufmgr_gem.c b/src/radeon_bufmgr_gem.c
new file mode 100644
-index 0000000..1e29981
+index 0000000..7ad911d
--- /dev/null
+++ b/src/radeon_bufmgr_gem.c
-@@ -0,0 +1,532 @@
+@@ -0,0 +1,533 @@
+/**************************************************************************
+ *
+ * Copyright © 2007-2008 Red Hat Inc.
@@ -2652,7 +2658,7 @@
+ if (gem_bo->map_count++ != 0)
+ return 0;
+
-+ gem_bo->touched = 1;
++ gem_bo->touched = 1; /* workaround */
+ args.handle = gem_bo->gem_handle;
+ args.offset = 0;
+ args.size = gem_bo->bo.size;
@@ -2690,15 +2696,16 @@
+void radeon_bufmgr_gem_wait_rendering(dri_bo *buf)
+{
+ dri_bufmgr_gem *bufmgr_gem = (dri_bufmgr_gem *)buf->bufmgr;
-+ struct drm_radeon_gem_set_domain dom_args;
++ struct drm_radeon_gem_wait_rendering args;
+ dri_bo_gem *gem_bo = (dri_bo_gem *)buf;
+ int ret;
+
-+ dom_args.handle = gem_bo->gem_handle;
-+ dom_args.read_domains = RADEON_GEM_DOMAIN_GTT | RADEON_GEM_DOMAIN_VRAM;
-+ dom_args.write_domain = 0;
-+ ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_SET_DOMAIN,
-+ &dom_args, sizeof(dom_args));
++ args.handle = gem_bo->gem_handle;
++
++ do {
++ ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_WAIT_RENDERING,
++ &args, sizeof(args));
++ } while (ret == -EAGAIN);
+ return;
+}
+
@@ -5510,7 +5517,7 @@
pScrn->vtSema = FALSE;
diff --git a/src/radeon_drm.h b/src/radeon_drm.h
-index 66cefb7..18bad6b 100644
+index 66cefb7..af7d382 100644
--- a/src/radeon_drm.h
+++ b/src/radeon_drm.h
@@ -303,7 +303,6 @@ typedef union {
@@ -5549,7 +5556,7 @@
+#define DRM_RADEON_GEM_PREAD 0x21
+#define DRM_RADEON_GEM_PWRITE 0x22
+#define DRM_RADEON_GEM_SET_DOMAIN 0x23
-+#define DRM_RADEON_GEM_INDIRECT 0x24 // temporary for X server
++#define DRM_RADEON_GEM_WAIT_RENDERING 0x24
+
+#define DRM_RADEON_CS 0x25
+#define DRM_RADEON_CS2 0x26
@@ -5557,7 +5564,7 @@
#define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)
#define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START)
#define DRM_IOCTL_RADEON_CP_STOP DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t)
-@@ -522,16 +543,29 @@ typedef struct {
+@@ -522,16 +543,28 @@ typedef struct {
#define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t)
#define DRM_IOCTL_RADEON_SURF_FREE DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t)
@@ -5569,8 +5576,7 @@
+#define DRM_IOCTL_RADEON_GEM_PREAD DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PREAD, struct drm_radeon_gem_pread)
+#define DRM_IOCTL_RADEON_GEM_PWRITE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PWRITE, struct drm_radeon_gem_pwrite)
+#define DRM_IOCTL_RADEON_GEM_SET_DOMAIN DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_DOMAIN, struct drm_radeon_gem_set_domain)
-+#define DRM_IOCTL_RADEON_GEM_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_INDIRECT, struct drm_radeon_gem_indirect)
-+
++#define DRM_IOCTL_RADEON_GEM_WAIT_RENDERING DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_GEM_WAIT_RENDERING, struct drm_radeon_gem_wait_rendering)
+#define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs)
+#define DRM_IOCTL_RADEON_CS2 DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS2, struct drm_radeon_cs2)
+
@@ -5590,7 +5596,7 @@
int cp_mode;
int gart_size;
int ring_size;
-@@ -543,9 +577,8 @@ typedef struct drm_radeon_init {
+@@ -543,9 +576,8 @@ typedef struct drm_radeon_init {
unsigned int depth_bpp;
unsigned int depth_offset, depth_pitch;
@@ -5602,7 +5608,7 @@
unsigned long ring_offset;
unsigned long ring_rptr_offset;
unsigned long buffers_offset;
-@@ -581,7 +614,7 @@ typedef struct drm_radeon_clear {
+@@ -581,7 +613,7 @@ typedef struct drm_radeon_clear {
unsigned int clear_depth;
unsigned int color_mask;
unsigned int depth_mask; /* misnamed field: should be stencil */
@@ -5611,7 +5617,7 @@
} drm_radeon_clear_t;
typedef struct drm_radeon_vertex {
-@@ -607,9 +640,9 @@ typedef struct drm_radeon_vertex2 {
+@@ -607,9 +639,9 @@ typedef struct drm_radeon_vertex2 {
int idx; /* Index of vertex buffer */
int discard; /* Client finished with buffer? */
int nr_states;
@@ -5623,7 +5629,7 @@
} drm_radeon_vertex2_t;
/* v1.3 - obsoletes drm_radeon_vertex2
-@@ -624,15 +657,15 @@ typedef struct drm_radeon_vertex2 {
+@@ -624,15 +656,15 @@ typedef struct drm_radeon_vertex2 {
*/
typedef struct drm_radeon_cmd_buffer {
int bufsz;
@@ -5642,7 +5648,7 @@
} drm_radeon_tex_image_t;
typedef struct drm_radeon_texture {
-@@ -641,11 +674,11 @@ typedef struct drm_radeon_texture {
+@@ -641,11 +673,11 @@ typedef struct drm_radeon_texture {
int format;
int width; /* Texture image coordinates */
int height;
@@ -5656,7 +5662,7 @@
} drm_radeon_stipple_t;
typedef struct drm_radeon_indirect {
-@@ -655,9 +688,6 @@ typedef struct drm_radeon_indirect {
+@@ -655,9 +687,6 @@ typedef struct drm_radeon_indirect {
int discard;
} drm_radeon_indirect_t;
@@ -5666,7 +5672,7 @@
/* enum for card type parameters */
#define RADEON_CARD_PCI 0
#define RADEON_CARD_AGP 1
-@@ -683,10 +713,11 @@ typedef struct drm_radeon_indirect {
+@@ -683,10 +712,11 @@ typedef struct drm_radeon_indirect {
#define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */
#define RADEON_PARAM_FB_LOCATION 14 /* FB location */
#define RADEON_PARAM_NUM_GB_PIPES 15 /* num GB pipes */
@@ -5679,7 +5685,7 @@
} drm_radeon_getparam_t;
/* 1.6: Set up a memory manager for regions of shared memory:
-@@ -698,7 +729,7 @@ typedef struct drm_radeon_mem_alloc {
+@@ -698,7 +728,7 @@ typedef struct drm_radeon_mem_alloc {
int region;
int alignment;
int size;
@@ -5688,7 +5694,7 @@
} drm_radeon_mem_alloc_t;
typedef struct drm_radeon_mem_free {
-@@ -715,7 +746,7 @@ typedef struct drm_radeon_mem_init_heap {
+@@ -715,7 +745,7 @@ typedef struct drm_radeon_mem_init_heap {
/* 1.6: Userspace can request & wait on irq's:
*/
typedef struct drm_radeon_irq_emit {
@@ -5697,7 +5703,7 @@
} drm_radeon_irq_emit_t;
typedef struct drm_radeon_irq_wait {
-@@ -734,10 +765,10 @@ typedef struct drm_radeon_setparam {
+@@ -734,10 +764,10 @@ typedef struct drm_radeon_setparam {
#define RADEON_SETPARAM_FB_LOCATION 1 /* determined framebuffer location */
#define RADEON_SETPARAM_SWITCH_TILING 2 /* enable/disable color tiling */
#define RADEON_SETPARAM_PCIGART_LOCATION 3 /* PCI Gart Location */
@@ -5709,7 +5715,7 @@
/* 1.14: Clients can allocate/free a surface
*/
typedef struct drm_radeon_surface_alloc {
-@@ -753,4 +784,117 @@ typedef struct drm_radeon_surface_free {
+@@ -753,4 +783,114 @@ typedef struct drm_radeon_surface_free {
#define DRM_RADEON_VBLANK_CRTC1 1
#define DRM_RADEON_VBLANK_CRTC2 2
@@ -5749,7 +5755,8 @@
+ uint32_t write_domain;
+};
+
-+struct drm_radeon_gem_exec_buffer {
++struct drm_radeon_gem_wait_rendering {
++ uint32_t handle;
+};
+
+struct drm_radeon_gem_pin {
@@ -5793,10 +5800,6 @@
+ uint64_t data_ptr; /* void *, but pointers are not 32/64 compatible */
+};
+
-+struct drm_radeon_gem_indirect {
-+ uint32_t handle;
-+ uint32_t used;
-+};
+
+/* New interface which obsolete all previous interface.
+ */
@@ -5828,7 +5831,7 @@
+
#endif
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
-index 0f86fdd..77a15c9 100644
+index 0f86fdd..4736c27 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -43,7 +43,11 @@
@@ -5893,7 +5896,7 @@
+ if (radeon_bufmgr_gem_has_references(driver_priv->bo))
+ RADEONCPFlushIndirect(pScrn, 0);
+
-+ //radeon_bufmgr_gem_wait_rendering(driver_priv->bo);
++ radeon_bufmgr_gem_wait_rendering(driver_priv->bo);
+
+ /* flush IB */
+ ret = dri_bo_map(driver_priv->bo, 1);
Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/xorg-x11-drv-ati.spec,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -r1.132 -r1.133
--- xorg-x11-drv-ati.spec 27 Oct 2008 06:56:03 -0000 1.132
+++ xorg-x11-drv-ati.spec 27 Oct 2008 21:00:49 -0000 1.133
@@ -5,7 +5,7 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
Version: 6.9.0
-Release: 32%{?dist}
+Release: 33%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -32,7 +32,7 @@
Requires: xorg-x11-server-Xorg >= 1.4.99.1
Requires: libdrm >= 2.4.0-0.21
# new CS method needs newer kernel
-Requires: kernel >= 2.6.27.4-52
+Requires: kernel >= 2.6.27.4-58
%description
X.Org X11 ati video driver.
@@ -74,6 +74,9 @@
%{_mandir}/man4/radeon.4*
%changelog
+* Tue Oct 28 2008 Dave Airlie <airlied at redhat.com> 6.9.0-33
+- add support for wait for rendering
+
* Mon Oct 27 2008 Dave Airlie <airlied at redhat.com> 6.9.0-32
- move to CS2 mechanism - using chunks to avoid multiple relocations
- add kernel requires about 2.6.27.4-52 for new CS mechanism
- Previous message: rpms/xfwm4/devel .cvsignore, 1.10, 1.11 sources, 1.10, 1.11 xfwm4.spec, 1.25, 1.26
- Next message: rpms/selinux-policy/devel policy-20080710.patch, 1.76, 1.77 selinux-policy.spec, 1.734, 1.735
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list