summaryrefslogtreecommitdiff
path: root/src/nv_dma.h
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2007-06-24 17:48:33 +1000
committerBen Skeggs <skeggsb@gmail.com>2007-06-24 17:56:22 +1000
commit824331e3fce36098e8dec31746204f7c13038abb (patch)
treeaa05134c43d450bbbeb838f57d383cd50a63e33f /src/nv_dma.h
parent2e2e95fc3b650ca633294bf4c11c9ba28f45b743 (diff)
downloadxorg-driver-xf86-video-nouveau-824331e3fce36098e8dec31746204f7c13038abb.tar.gz
Implement NV40 EXA composite hooks with 3D engine.
Named NV30EXA, but won't work on NV30 just yet. This should change at some point in the future. Will likely break non-voodoo'd NV4X cards (if the latest drm changes didn't already break them). Use EXANoComposite xorg.conf option to disable the hook if that's the case.
Diffstat (limited to 'src/nv_dma.h')
-rw-r--r--src/nv_dma.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/nv_dma.h b/src/nv_dma.h
index d09b35f..16be1fd 100644
--- a/src/nv_dma.h
+++ b/src/nv_dma.h
@@ -93,9 +93,13 @@ enum DMASubchannel {
(pNv)->dmaBase[(pNv)->dmaCurrent++] = (data); \
} while(0)
-#define NVDmaFloat(pNv, data) do { \
- float f = (data); \
- NVDmaNext((pNv), *(CARD32*)&f); \
+#define NVDmaFloat(pNv, data) do { \
+ union { \
+ float v; \
+ uint32_t u; \
+ } c; \
+ c.v = (data); \
+ NVDmaNext((pNv), c.u); \
} while(0)
#define NVDmaStart(pNv, subchannel, tag, size) do { \