diff options
author | Jakob Bornecrantz <jakob@tungstengraphics.com> | 2008-05-26 13:04:25 +0200 |
---|---|---|
committer | Jakob Bornecrantz <jakob@tungstengraphics.com> | 2008-05-26 13:04:25 +0200 |
commit | e3ddafd1d32192f4638d4930627ad66624325561 (patch) | |
tree | d538b76af6c559593c6507ad7c2eb415d1b28c75 /src/gallium/winsys/dri/intel/intel_winsys_i915.c | |
parent | 359058e7b77ddbac5eec7e8d1c77232bcbb1adbf (diff) | |
parent | 7fbb61eedd4b07f07007a172cea227d5c363b908 (diff) |
Merge branch 'gallium-tex-surface' into gallium-0.1
Conflicts:
src/gallium/include/pipe/p_util.h
Diffstat (limited to 'src/gallium/winsys/dri/intel/intel_winsys_i915.c')
-rw-r--r-- | src/gallium/winsys/dri/intel/intel_winsys_i915.c | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/src/gallium/winsys/dri/intel/intel_winsys_i915.c b/src/gallium/winsys/dri/intel/intel_winsys_i915.c index 4d183db7c3..a35825d36a 100644 --- a/src/gallium/winsys/dri/intel/intel_winsys_i915.c +++ b/src/gallium/winsys/dri/intel/intel_winsys_i915.c @@ -31,8 +31,8 @@ #include <stdlib.h> #include <xf86drm.h> -#include "dri_bufpool.h" -#include "dri_bufmgr.h" +#include "ws_dri_bufpool.h" +#include "ws_dri_bufmgr.h" #include "intel_context.h" #include "intel_batchbuffer.h" @@ -106,10 +106,18 @@ static void intel_i915_batch_reloc( struct i915_winsys *sws, mask |= DRM_BO_FLAG_READ; } - intel_batchbuffer_emit_reloc( intel->batch, +#if 0 /* JB old */ + intel_batchbuffer_emit_reloc( intel->batch, dri_bo( buf ), - flags, mask, + flags, mask, delta ); +#else /* new */ + intel_offset_relocation( intel->batch, + delta, + dri_bo( buf ), + flags, + mask ); +#endif } @@ -124,12 +132,24 @@ static void intel_i915_batch_flush( struct i915_winsys *sws, struct pipe_fence_handle *pipe; } fu; + if (fence) + assert(!*fence); + fu.dri = intel_batchbuffer_flush( intel->batch ); - if (fu.dri) - iws->pws->fence_reference(iws->pws, fence, fu.pipe); + if (!fu.dri) { + assert(0); + *fence = NULL; + return; + } + + if (fu.dri) { + if (fence) + *fence = fu.pipe; + else + driFenceUnReference(&fu.dri); + } -// if (0) intel_i915_batch_wait_idle( sws ); } |