From c0cf0fd163397d68acfb2e226a6b9a569ded54cd Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Wed, 2 Sep 2009 16:01:21 +0200 Subject: st/xorg: Remove code no longer support by xserver Git master. Shouldn't be necessary with older versions either. --- src/gallium/winsys/drm/intel/xorg/intel_xorg.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/gallium/winsys/drm/intel') diff --git a/src/gallium/winsys/drm/intel/xorg/intel_xorg.c b/src/gallium/winsys/drm/intel/xorg/intel_xorg.c index 28107f4b80..369dc356cf 100644 --- a/src/gallium/winsys/drm/intel/xorg/intel_xorg.c +++ b/src/gallium/winsys/drm/intel/xorg/intel_xorg.c @@ -47,8 +47,8 @@ static SymTabRec intel_xorg_chipsets[] = { }; static PciChipsets intel_xorg_pci_devices[] = { - {PCI_MATCH_ANY, PCI_MATCH_ANY, RES_SHARED_VGA}, - {-1, -1, RES_UNDEFINED} + {PCI_MATCH_ANY, PCI_MATCH_ANY, NULL}, + {-1, -1, NULL} }; static XF86ModuleVersionInfo intel_xorg_version = { @@ -104,12 +104,6 @@ intel_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin) setupDone = 1; xf86AddDriver(&modesetting, module, HaveDriverFuncs); - /* - * Tell the loader about symbols from other modules that this module - * might refer to. - */ - xorg_tracker_loader_ref_sym_lists(); - /* * The return value must be non-NULL on success even though there * is no TearDownProc. -- cgit v1.2.3 From 8303c722cbfd75bc181b5d281ab3be836104b088 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Thu, 3 Sep 2009 19:30:36 +0100 Subject: i915g: Don't run in sync with HW --- src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/gallium/winsys/drm/intel') diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c index 77b3fec17a..5c3e66fb57 100644 --- a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c @@ -12,6 +12,8 @@ #define INTEL_BATCH_NO_CLIPRECTS 0x1 #define INTEL_BATCH_CLIPRECTS 0x2 +#undef INTEL_RUN_SYNC + struct intel_drm_batchbuffer { struct intel_batchbuffer base; @@ -172,19 +174,20 @@ intel_drm_batchbuffer_flush(struct intel_batchbuffer *ibatch, drm_intel_bo_unmap(batch->bo); } else { - /* TODO figgure out why the gpu hangs if we don't run sync */ +#ifdef INTEL_RUN_SYNC drm_intel_bo_map(batch->bo, FALSE); drm_intel_bo_unmap(batch->bo); +#endif } if (fence) { ibatch->iws->fence_reference(ibatch->iws, fence, NULL); -#if 0 - (*fence) = intel_drm_fence_create(batch->bo); -#else +#ifdef INTEL_RUN_SYNC /* we run synced to GPU so just pass null */ (*fence) = intel_drm_fence_create(NULL); +#else + (*fence) = intel_drm_fence_create(batch->bo); #endif } -- cgit v1.2.3 From 3070b13f4c418359ca11f6cf44b39dcf630b29fb Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Thu, 3 Sep 2009 19:30:54 +0100 Subject: i915g: Up the number of relocs --- src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/gallium/winsys/drm/intel') diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c index 5c3e66fb57..5ca3ad9762 100644 --- a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c @@ -60,7 +60,7 @@ intel_drm_batchbuffer_create(struct intel_winsys *iws) batch->base.size = 0; batch->base.relocs = 0; - batch->base.max_relocs = 100;/*INTEL_DEFAULT_RELOCS;*/ + batch->base.max_relocs = 300;/*INTEL_DEFAULT_RELOCS;*/ batch->base.iws = iws; -- cgit v1.2.3 From 530fbd314e9d04db7f4e2a8f7d3a705393a6f9aa Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Fri, 4 Sep 2009 23:46:22 +0100 Subject: i915g: Remove lib prefix from driver --- src/gallium/winsys/drm/intel/dri/SConscript | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/gallium/winsys/drm/intel') diff --git a/src/gallium/winsys/drm/intel/dri/SConscript b/src/gallium/winsys/drm/intel/dri/SConscript index 6c00861f51..f973811072 100644 --- a/src/gallium/winsys/drm/intel/dri/SConscript +++ b/src/gallium/winsys/drm/intel/dri/SConscript @@ -12,8 +12,9 @@ drivers = [ trace, ] -env.SharedLibrary( +env.LoadableModule( target ='i915_dri.so', source = COMMON_GALLIUM_SOURCES, LIBS = drivers + mesa + auxiliaries + env['LIBS'], + SHLIBPREFIX = '', ) -- cgit v1.2.3 From 3833587818cc40a3d0f09b430e5a0a475d5a7167 Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Tue, 8 Sep 2009 20:51:02 +0100 Subject: i915g: Map vertex buffers via gtt --- src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/gallium/winsys/drm/intel') diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c index e017cd2e98..e932f71e42 100644 --- a/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c @@ -28,6 +28,7 @@ intel_drm_buffer_create(struct intel_winsys *iws, } else if (type == INTEL_NEW_VERTEX) { name = "gallium3d_vertex"; pool = idws->pools.gem; + buf->map_gtt = TRUE; } else if (type == INTEL_NEW_SCANOUT) { name = "gallium3d_scanout"; pool = idws->pools.gem; -- cgit v1.2.3 From 547b726484766b644c40587a5b41a44dbe80f3be Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Tue, 8 Sep 2009 21:30:48 +0100 Subject: i915g: pwrite batchbuffer instead of map --- .../winsys/drm/intel/gem/intel_drm_batchbuffer.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'src/gallium/winsys/drm/intel') diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c index 5ca3ad9762..ebd1b607b7 100644 --- a/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_batchbuffer.c @@ -13,6 +13,7 @@ #define INTEL_BATCH_CLIPRECTS 0x2 #undef INTEL_RUN_SYNC +#undef INTEL_MAP_BATCHBUFFER struct intel_drm_batchbuffer { @@ -40,8 +41,11 @@ intel_drm_batchbuffer_reset(struct intel_drm_batchbuffer *batch) "gallium3d_batchbuffer", batch->actual_size, 4096); + +#ifdef INTEL_MAP_BATCHBUFFER drm_intel_bo_map(batch->bo, TRUE); batch->base.map = batch->bo->virtual; +#endif memset(batch->base.map, 0, batch->actual_size); batch->base.ptr = batch->base.map; @@ -55,7 +59,13 @@ intel_drm_batchbuffer_create(struct intel_winsys *iws) struct intel_drm_winsys *idws = intel_drm_winsys(iws); struct intel_drm_batchbuffer *batch = CALLOC_STRUCT(intel_drm_batchbuffer); + batch->actual_size = idws->max_batch_size; + +#ifdef INTEL_MAP_BATCHBUFFER batch->base.map = NULL; +#else + batch->base.map = MALLOC(batch->actual_size); +#endif batch->base.ptr = NULL; batch->base.size = 0; @@ -64,8 +74,6 @@ intel_drm_batchbuffer_create(struct intel_winsys *iws) batch->base.iws = iws; - batch->actual_size = idws->max_batch_size; - intel_drm_batchbuffer_reset(batch); return &batch->base; @@ -156,7 +164,11 @@ intel_drm_batchbuffer_flush(struct intel_batchbuffer *ibatch, used = batch->base.ptr - batch->base.map; +#ifdef INTEL_MAP_BATCHBUFFER drm_intel_bo_unmap(batch->bo); +#else + drm_intel_bo_subdata(batch->bo, 0, used, batch->base.map); +#endif /* Do the sending to HW */ ret = drm_intel_bo_exec(batch->bo, used, NULL, 0, 0); @@ -202,7 +214,10 @@ intel_drm_batchbuffer_destroy(struct intel_batchbuffer *ibatch) if (batch->bo) drm_intel_bo_unreference(batch->bo); - free(batch); +#ifndef INTEL_MAP_BATCHBUFFER + FREE(batch->base.map); +#endif + FREE(batch); } void intel_drm_winsys_init_batchbuffer_functions(struct intel_drm_winsys *idws) -- cgit v1.2.3 From e589a37f7b72da4f5eb8cbb46443d7baf710b37c Mon Sep 17 00:00:00 2001 From: Jakob Bornecrantz Date: Wed, 9 Sep 2009 00:38:04 +0100 Subject: i915g: Add buffer write callback --- src/gallium/drivers/i915simple/intel_winsys.h | 11 +++++++++++ src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c | 13 +++++++++++++ 2 files changed, 24 insertions(+) (limited to 'src/gallium/winsys/drm/intel') diff --git a/src/gallium/drivers/i915simple/intel_winsys.h b/src/gallium/drivers/i915simple/intel_winsys.h index f949f52a9c..42c5e7470e 100644 --- a/src/gallium/drivers/i915simple/intel_winsys.h +++ b/src/gallium/drivers/i915simple/intel_winsys.h @@ -150,6 +150,17 @@ struct intel_winsys { void (*buffer_unmap)(struct intel_winsys *iws, struct intel_buffer *buffer); + /** + * Write to a buffer. + * + * Arguments follows pwrite(2) + */ + int (*buffer_write)(struct intel_winsys *iws, + struct intel_buffer *dst, + const void *src, + size_t size, + size_t offset); + void (*buffer_destroy)(struct intel_winsys *iws, struct intel_buffer *buffer); /*@}*/ diff --git a/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c b/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c index e932f71e42..0030f915a3 100644 --- a/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c +++ b/src/gallium/winsys/drm/intel/gem/intel_drm_buffer.c @@ -110,6 +110,18 @@ intel_drm_buffer_unmap(struct intel_winsys *iws, drm_intel_bo_unmap(intel_bo(buffer)); } +static int +intel_drm_buffer_write(struct intel_winsys *iws, + struct intel_buffer *buffer, + const void *data, + size_t size, + size_t offset) +{ + struct intel_drm_buffer *buf = intel_drm_buffer(buffer); + + return drm_intel_bo_subdata(buf->bo, offset, size, (void*)data); +} + static void intel_drm_buffer_destroy(struct intel_winsys *iws, struct intel_buffer *buffer) @@ -131,5 +143,6 @@ intel_drm_winsys_init_buffer_functions(struct intel_drm_winsys *idws) idws->base.buffer_set_fence_reg = intel_drm_buffer_set_fence_reg; idws->base.buffer_map = intel_drm_buffer_map; idws->base.buffer_unmap = intel_drm_buffer_unmap; + idws->base.buffer_write = intel_drm_buffer_write; idws->base.buffer_destroy = intel_drm_buffer_destroy; } -- cgit v1.2.3