diff options
author | Ben Skeggs <skeggsb@gmail.com> | 2007-06-24 17:48:33 +1000 |
---|---|---|
committer | Ben Skeggs <skeggsb@gmail.com> | 2007-06-24 17:56:22 +1000 |
commit | 824331e3fce36098e8dec31746204f7c13038abb (patch) | |
tree | aa05134c43d450bbbeb838f57d383cd50a63e33f /src/nv_dma.h | |
parent | 2e2e95fc3b650ca633294bf4c11c9ba28f45b743 (diff) | |
download | xorg-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.h | 10 |
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 { \ |