diff options
author | Kai Wasserbäch <[email protected]> | 2011-11-29 15:04:58 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2011-11-29 15:44:09 +0000 |
commit | 2c27f204f1ca6f09f9520712be1da9a13ed5c01d (patch) | |
tree | 72aa79b2e6680172efe116b51640337f640f8e28 /src/gallium/winsys/i965/drm | |
parent | 76ba431b97087e2d5ca0351e0d613f0812fd1425 (diff) |
i965g: Delete this driver.
Never completed, and no plans to do so.
Signed-off-by: Kai Wasserbäch <[email protected]>
Signed-off-by: José Fonseca <[email protected]>
Diffstat (limited to 'src/gallium/winsys/i965/drm')
-rw-r--r-- | src/gallium/winsys/i965/drm/Makefile | 14 | ||||
-rw-r--r-- | src/gallium/winsys/i965/drm/SConscript | 17 | ||||
-rw-r--r-- | src/gallium/winsys/i965/drm/i965_drm_buffer.c | 503 | ||||
-rw-r--r-- | src/gallium/winsys/i965/drm/i965_drm_public.h | 9 | ||||
-rw-r--r-- | src/gallium/winsys/i965/drm/i965_drm_winsys.c | 74 | ||||
-rw-r--r-- | src/gallium/winsys/i965/drm/i965_drm_winsys.h | 60 |
6 files changed, 0 insertions, 677 deletions
diff --git a/src/gallium/winsys/i965/drm/Makefile b/src/gallium/winsys/i965/drm/Makefile deleted file mode 100644 index 830007ed478..00000000000 --- a/src/gallium/winsys/i965/drm/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -TOP = ../../../../.. -include $(TOP)/configs/current - -LIBNAME = i965drm - -C_SOURCES = \ - i965_drm_buffer.c \ - i965_drm_winsys.c - -LIBRARY_INCLUDES = $(shell $(PKG_CONFIG) libdrm --cflags-only-I) - -LIBRARY_DEFINES = $(shell $(PKG_CONFIG) --cflags-only-other) - -include ../../../Makefile.template diff --git a/src/gallium/winsys/i965/drm/SConscript b/src/gallium/winsys/i965/drm/SConscript deleted file mode 100644 index a0f32ded402..00000000000 --- a/src/gallium/winsys/i965/drm/SConscript +++ /dev/null @@ -1,17 +0,0 @@ -Import('*') - -env = env.Clone() - -env.PkgUseModules('DRM') - -i965drm_sources = [ - 'i965_drm_buffer.c', - 'i965_drm_winsys.c', -] - -i965drm = env.ConvenienceLibrary( - target ='i965drm', - source = i965drm_sources, -) - -Export('i965drm') diff --git a/src/gallium/winsys/i965/drm/i965_drm_buffer.c b/src/gallium/winsys/i965/drm/i965_drm_buffer.c deleted file mode 100644 index a904179eeb9..00000000000 --- a/src/gallium/winsys/i965/drm/i965_drm_buffer.c +++ /dev/null @@ -1,503 +0,0 @@ - -#include "state_tracker/drm_driver.h" -#include "i965_drm_winsys.h" -#include "util/u_memory.h" -#include "util/u_inlines.h" - -#include "i915_drm.h" -#include "intel_bufmgr.h" - - - -const char *names[BRW_BUFFER_TYPE_MAX] = { - "TEXTURE", - "SCANOUT", - "VERTEX", - "CURBE", - "QUERY", - "SHADER_CONSTANTS", - "WM_SCRATCH", - "BATCH", - "GENERAL_STATE", - "SURFACE_STATE", - "PIXEL", - "GENERIC", -}; - -const char *usages[BRW_USAGE_MAX] = { - "STATE", - "QUERY_RESULT", - "RENDER_TARGET", - "DEPTH_BUFFER", - "BLIT_SOURCE", - "BLIT_DEST", - "SAMPLER", - "VERTEX", - "SCRATCH" -}; - - -const char *data_types[BRW_DATA_MAX] = -{ - "GS: CC_VP", - "GS: CC_UNIT", - "GS: WM_PROG", - "GS: SAMPLER_DEFAULT_COLOR", - "GS: SAMPLER", - "GS: WM_UNIT", - "GS: SF_PROG", - "GS: SF_VP", - "GS: SF_UNIT", - "GS: VS_UNIT", - "GS: VS_PROG", - "GS: GS_UNIT", - "GS: GS_PROG", - "GS: CLIP_VP", - "GS: CLIP_UNIT", - "GS: CLIP_PROG", - "SS: SURFACE", - "SS: SURF_BIND", - "CONSTANT DATA", - "BATCH DATA", - "(untyped)" -}; - -static enum pipe_error -i965_libdrm_bo_alloc(struct brw_winsys_screen *sws, - enum brw_buffer_type type, - unsigned size, - unsigned alignment, - struct brw_winsys_buffer **bo_out) -{ - struct i965_libdrm_winsys *idws = i965_libdrm_winsys(sws); - struct i965_libdrm_buffer *buf; - - if (BRW_DUMP) - debug_printf("%s type %s sz %d align %d\n", - __FUNCTION__, names[type], size, alignment ); - - buf = CALLOC_STRUCT(i965_libdrm_buffer); - if (!buf) - return PIPE_ERROR_OUT_OF_MEMORY; - - switch (type) { - case BRW_BUFFER_TYPE_TEXTURE: -/* case BRW_BUFFER_TYPE_SCANOUT:*/ - case BRW_BUFFER_TYPE_VERTEX: - case BRW_BUFFER_TYPE_CURBE: - case BRW_BUFFER_TYPE_QUERY: - case BRW_BUFFER_TYPE_SHADER_CONSTANTS: - case BRW_BUFFER_TYPE_SHADER_SCRATCH: - case BRW_BUFFER_TYPE_BATCH: - case BRW_BUFFER_TYPE_GENERAL_STATE: - case BRW_BUFFER_TYPE_SURFACE_STATE: - case BRW_BUFFER_TYPE_PIXEL: - case BRW_BUFFER_TYPE_GENERIC: - break; - case BRW_BUFFER_TYPE_SCANOUT: - buf->map_gtt = TRUE; - break; - default: - assert(0); - break; - } - - buf->bo = drm_intel_bo_alloc(idws->gem, - names[type], - size, - alignment); - - if (!buf->bo) - goto err; - - pipe_reference_init(&buf->base.reference, 1); - buf->base.size = size; - buf->base.sws = sws; - - *bo_out = &buf->base; - return PIPE_OK; - -err: - assert(0); - FREE(buf); - return PIPE_ERROR_OUT_OF_MEMORY; -} - -static enum pipe_error -i965_libdrm_bo_from_handle(struct brw_winsys_screen *sws, - struct winsys_handle *whandle, - unsigned *stride, - unsigned *tile, - struct brw_winsys_buffer **bo_out) -{ - struct i965_libdrm_winsys *idws = i965_libdrm_winsys(sws); - struct i965_libdrm_buffer *buf = CALLOC_STRUCT(i965_libdrm_buffer); - uint32_t swizzle = 0; - - if (BRW_DUMP) - debug_printf("%s\n", __FUNCTION__); - - if (!buf) - return PIPE_ERROR_OUT_OF_MEMORY; - - pipe_reference_init(&buf->base.reference, 1); - buf->bo = drm_intel_bo_gem_create_from_name(idws->gem, "FROM_HANDLE", whandle->handle); - buf->base.size = buf->bo->size; - buf->base.sws = &idws->base; - buf->flinked = TRUE; - buf->flink = whandle->handle; - - - if (!buf->bo) - goto err; - - drm_intel_bo_get_tiling(buf->bo, &buf->tiling, &swizzle); - if (buf->tiling != 0) - buf->map_gtt = TRUE; - - *tile = buf->tiling; - *stride = whandle->stride; - - *bo_out = &buf->base; - return PIPE_OK; - -err: - FREE(buf); - return PIPE_ERROR_OUT_OF_MEMORY; -} - -static enum pipe_error -i965_libdrm_bo_get_handle(struct brw_winsys_buffer *buffer, - struct winsys_handle *whandle, - unsigned stride) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - - if (BRW_DUMP) - debug_printf("%s\n", __FUNCTION__); - - if (whandle->type == DRM_API_HANDLE_TYPE_SHARED) { - if (!buf->flinked) { - if (drm_intel_bo_flink(buf->bo, &buf->flink)) - return PIPE_ERROR_BAD_INPUT; - buf->flinked = TRUE; - } - - whandle->handle = buf->flink; - } else if (whandle->type == DRM_API_HANDLE_TYPE_KMS) { - whandle->handle = buf->bo->handle; - } else { - assert(!"unknown usage"); - return PIPE_ERROR_BAD_INPUT; - } - - whandle->stride = stride; - return PIPE_OK; -} - -static void -i965_libdrm_bo_destroy(struct brw_winsys_buffer *buffer) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - - if (BRW_DUMP) - debug_printf("%s\n", __FUNCTION__); - - drm_intel_bo_unreference(buf->bo); - FREE(buffer); -} - -static enum pipe_error -i965_libdrm_bo_emit_reloc(struct brw_winsys_buffer *buffer, - enum brw_buffer_usage usage, - unsigned delta, - unsigned offset, - struct brw_winsys_buffer *buffer2) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - struct i965_libdrm_buffer *buf2 = i965_libdrm_buffer(buffer2); - int read, write; - int ret; - - if (BRW_DUMP) - debug_printf("%s buf %p offset %x delta %x buf2 %p/%s/%s\n", - __FUNCTION__, (void *)buffer, - offset, delta, - (void *)buffer2, names[buf2->data_type], usages[usage]); - - switch (usage) { - case BRW_USAGE_STATE: - read = I915_GEM_DOMAIN_INSTRUCTION; - write = 0; - break; - case BRW_USAGE_QUERY_RESULT: - read = I915_GEM_DOMAIN_INSTRUCTION; - write = I915_GEM_DOMAIN_INSTRUCTION; - break; - case BRW_USAGE_RENDER_TARGET: - read = I915_GEM_DOMAIN_RENDER; - write = 0; - break; - case BRW_USAGE_DEPTH_BUFFER: - read = I915_GEM_DOMAIN_RENDER; - write = I915_GEM_DOMAIN_RENDER; - break; - case BRW_USAGE_BLIT_SOURCE: - read = 0; - write = I915_GEM_DOMAIN_RENDER; - break; - case BRW_USAGE_BLIT_DEST: - read = I915_GEM_DOMAIN_RENDER; - write = I915_GEM_DOMAIN_RENDER; - break; - case BRW_USAGE_SAMPLER: - read = I915_GEM_DOMAIN_SAMPLER; - write = 0; - break; - case BRW_USAGE_VERTEX: - read = I915_GEM_DOMAIN_VERTEX; - write = 0; - break; - case BRW_USAGE_SCRATCH: - read = 0; - write = 0; - break; - default: - assert(0); - return -1; - } - - /* Needed?? - ((uint32_t *)buf->bo->virtual)[offset/4] = (delta + - buf2->bo->offset); - */ - - ret = dri_bo_emit_reloc( buf->bo, read, write, delta, offset, buf2->bo ); - if (ret) - return -1; - - return 0; -} - -static enum pipe_error -i965_libdrm_bo_exec(struct brw_winsys_buffer *buffer, - unsigned bytes_used) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - struct i965_libdrm_winsys *idws = i965_libdrm_winsys(buffer->sws); - int ret; - - if (BRW_DUMP) - debug_printf("execute buffer %p, bytes %d\n", (void *)buffer, bytes_used); - - if (idws->send_cmd) { - ret = dri_bo_exec(buf->bo, bytes_used, NULL, 0, 0); - if (ret) - return PIPE_ERROR; - } - - return PIPE_OK; -} - -static enum pipe_error -i965_libdrm_bo_subdata(struct brw_winsys_buffer *buffer, - enum brw_buffer_data_type data_type, - size_t offset, - size_t size, - const void *data, - const struct brw_winsys_reloc *reloc, - unsigned nr_reloc) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - struct i965_libdrm_winsys *idws = i965_libdrm_winsys(buffer->sws); - int ret, i; - - (void)data_type; - - if (BRW_DUMP) - debug_printf("%s buf %p off %d sz %d %s relocs: %d\n", - __FUNCTION__, - (void *)buffer, offset, size, - data_types[data_type], - nr_reloc); - - if (BRW_DUMP) - brw_dump_data( idws->base.pci_id, - data_type, - buf->bo->offset + offset, - data, size, buffer->sws->gen ); - - /* XXX: use bo_map_gtt/memcpy/unmap_gtt under some circumstances??? - */ - ret = drm_intel_bo_subdata(buf->bo, offset, size, (void*)data); - if (ret) - return PIPE_ERROR; - - for (i = 0; i < nr_reloc; i++) { - i965_libdrm_bo_emit_reloc(buffer, reloc[i].usage, reloc[i].delta, - reloc[i].offset, reloc[i].bo); - } - - return PIPE_OK; -} - -static boolean -i965_libdrm_bo_is_busy(struct brw_winsys_buffer *buffer) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - boolean ret; - - if (BRW_DUMP) - debug_printf("%s %p\n", __FUNCTION__, (void *)buffer); - - ret = drm_intel_bo_busy(buf->bo); - - if (BRW_DUMP) - debug_printf(" --> %d\n", ret); - - return ret; -} - -static boolean -i965_libdrm_bo_references(struct brw_winsys_buffer *a, - struct brw_winsys_buffer *b) -{ - struct i965_libdrm_buffer *bufa = i965_libdrm_buffer(a); - struct i965_libdrm_buffer *bufb = i965_libdrm_buffer(b); - boolean ret; - - if (BRW_DUMP) - debug_printf("%s %p %p\n", __FUNCTION__, (void *)a, (void *)b); - - ret = drm_intel_bo_references(bufa->bo, bufb->bo); - - if (BRW_DUMP) - debug_printf(" --> %d\n", ret); - - return ret; -} - -/* XXX: couldn't this be handled by returning true/false on - * bo_emit_reloc? - */ -static enum pipe_error -i965_libdrm_check_aperture_space(struct brw_winsys_screen *iws, - struct brw_winsys_buffer **buffers, - unsigned count) -{ - static drm_intel_bo *bos[128]; - int i; - int ret; - - if (BRW_DUMP) - debug_printf("%s\n", __FUNCTION__); - - if (count > Elements(bos)) { - assert(0); - return FALSE; - } - - for (i = 0; i < count; i++) - bos[i] = i965_libdrm_buffer(buffers[i])->bo; - - /* XXX: converting from ??? to pipe_error: - */ - ret = dri_bufmgr_check_aperture_space(bos, count); - - if (BRW_DUMP) - debug_printf(" --> %d (ok == %d)\n", ret, PIPE_OK); - - return ret; -} - -static void * -i965_libdrm_bo_map(struct brw_winsys_buffer *buffer, - enum brw_buffer_data_type data_type, - unsigned offset, - unsigned length, - boolean write, - boolean discard, - boolean flush_explicit) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - int ret; - - - if (BRW_DUMP) - debug_printf("%s %p %s %s\n", __FUNCTION__, (void *)buffer, - write ? "read/write" : "read", - write ? data_types[data_type] : ""); - - if (!buf->map_count) { - if (buf->map_gtt) { - ret = drm_intel_gem_bo_map_gtt(buf->bo); - if (ret) - return NULL; - } - else { - ret = drm_intel_bo_map(buf->bo, write); - if (ret) - return NULL; - } - } - - buf->data_type = data_type; - buf->map_count++; - return buf->bo->virtual; -} - -static void -i965_libdrm_bo_flush_range(struct brw_winsys_buffer *buffer, - unsigned offset, - unsigned length) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - struct i965_libdrm_winsys *idws = i965_libdrm_winsys(buffer->sws); - - if (BRW_DUMP) - debug_printf("%s %s offset %d len %d\n", __FUNCTION__, - data_types[buf->data_type], - offset, length); - - if (BRW_DUMP) - brw_dump_data( idws->base.pci_id, - buf->data_type, - buf->bo->offset + offset, - (char*)buf->bo->virtual + offset, - length, buffer->sws->gen ); -} - -static void -i965_libdrm_bo_unmap(struct brw_winsys_buffer *buffer) -{ - struct i965_libdrm_buffer *buf = i965_libdrm_buffer(buffer); - - if (BRW_DUMP) - debug_printf("%s\n", __FUNCTION__); - - if (--buf->map_count > 0) - return; - - if (buf->map_gtt) - drm_intel_gem_bo_unmap_gtt(buf->bo); - else - drm_intel_bo_unmap(buf->bo); -} - -void -i965_libdrm_winsys_init_buffer_functions(struct i965_libdrm_winsys *idws) -{ - idws->base.bo_alloc = i965_libdrm_bo_alloc; - idws->base.bo_from_handle = i965_libdrm_bo_from_handle; - idws->base.bo_get_handle = i965_libdrm_bo_get_handle; - idws->base.bo_destroy = i965_libdrm_bo_destroy; - idws->base.bo_emit_reloc = i965_libdrm_bo_emit_reloc; - idws->base.bo_exec = i965_libdrm_bo_exec; - idws->base.bo_subdata = i965_libdrm_bo_subdata; - idws->base.bo_is_busy = i965_libdrm_bo_is_busy; - idws->base.bo_references = i965_libdrm_bo_references; - idws->base.check_aperture_space = i965_libdrm_check_aperture_space; - idws->base.bo_map = i965_libdrm_bo_map; - idws->base.bo_flush_range = i965_libdrm_bo_flush_range; - idws->base.bo_unmap = i965_libdrm_bo_unmap; -} diff --git a/src/gallium/winsys/i965/drm/i965_drm_public.h b/src/gallium/winsys/i965/drm/i965_drm_public.h deleted file mode 100644 index 2913b079747..00000000000 --- a/src/gallium/winsys/i965/drm/i965_drm_public.h +++ /dev/null @@ -1,9 +0,0 @@ - -#ifndef I965_DRM_PUBLIC_H -#define I965_DRM_PUBLIC_H - -struct brw_winsys_screen; - -struct brw_winsys_screen * i965_drm_winsys_screen_create(int drmFD); - -#endif diff --git a/src/gallium/winsys/i965/drm/i965_drm_winsys.c b/src/gallium/winsys/i965/drm/i965_drm_winsys.c deleted file mode 100644 index b08e622db94..00000000000 --- a/src/gallium/winsys/i965/drm/i965_drm_winsys.c +++ /dev/null @@ -1,74 +0,0 @@ - -#include <stdio.h> -#include "state_tracker/drm_driver.h" - -#include "i965_drm_winsys.h" -#include "i965_drm_public.h" -#include "util/u_memory.h" - -/* - * Helper functions - */ - - -static void -i965_libdrm_get_device_id(unsigned int *device_id) -{ - char path[512]; - FILE *file; - void *shutup_gcc; - - /* - * FIXME: Fix this up to use a drm ioctl or whatever. - */ - - snprintf(path, sizeof(path), "/sys/class/drm/card0/device/device"); - file = fopen(path, "r"); - if (!file) { - return; - } - - shutup_gcc = fgets(path, sizeof(path), file); - sscanf(path, "%x", device_id); - fclose(file); -} - -static void -i965_libdrm_winsys_destroy(struct brw_winsys_screen *iws) -{ - struct i965_libdrm_winsys *idws = i965_libdrm_winsys(iws); - - if (BRW_DUMP) - debug_printf("%s\n", __FUNCTION__); - - drm_intel_bufmgr_destroy(idws->gem); - - FREE(idws); -} - -struct brw_winsys_screen * -i965_drm_winsys_screen_create(int drmFD) -{ - struct i965_libdrm_winsys *idws; - - debug_printf("%s\n", __FUNCTION__); - - idws = CALLOC_STRUCT(i965_libdrm_winsys); - if (!idws) - return NULL; - - i965_libdrm_get_device_id(&idws->base.pci_id); - - i965_libdrm_winsys_init_buffer_functions(idws); - - idws->fd = drmFD; - - idws->base.destroy = i965_libdrm_winsys_destroy; - - idws->gem = drm_intel_bufmgr_gem_init(idws->fd, BRW_BATCH_SIZE); - drm_intel_bufmgr_gem_enable_reuse(idws->gem); - - idws->send_cmd = !debug_get_bool_option("BRW_NO_HW", FALSE); - - return &idws->base; -} diff --git a/src/gallium/winsys/i965/drm/i965_drm_winsys.h b/src/gallium/winsys/i965/drm/i965_drm_winsys.h deleted file mode 100644 index 82dbe61cc51..00000000000 --- a/src/gallium/winsys/i965/drm/i965_drm_winsys.h +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef INTEL_DRM_WINSYS_H -#define INTEL_DRM_WINSYS_H - -#include "i965/brw_winsys.h" - -#include "drm.h" -#include "intel_bufmgr.h" - - - -/* - * Winsys - */ - - -struct i965_libdrm_winsys -{ - struct brw_winsys_screen base; - drm_intel_bufmgr *gem; - - boolean send_cmd; - - int fd; /**< Drm file discriptor */ -}; - -static INLINE struct i965_libdrm_winsys * -i965_libdrm_winsys(struct brw_winsys_screen *iws) -{ - return (struct i965_libdrm_winsys *)iws; -} - -void i965_libdrm_winsys_init_buffer_functions(struct i965_libdrm_winsys *idws); - - -/* Buffer. - */ -struct i965_libdrm_buffer { - struct brw_winsys_buffer base; - - drm_intel_bo *bo; - - void *ptr; - unsigned map_count; - unsigned data_type; /* valid while mapped */ - unsigned tiling; - - boolean map_gtt; - boolean flinked; - unsigned flink; -}; - -static INLINE struct i965_libdrm_buffer * -i965_libdrm_buffer(struct brw_winsys_buffer *buffer) -{ - return (struct i965_libdrm_buffer *)buffer; -} - - -#endif |