summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2014-12-25 10:57:28 +0800
committerZhigang Gong <zhigang.gong@intel.com>2014-12-25 14:31:22 +0800
commit189aa7991668448a00f2f17ac247689a4cd84409 (patch)
tree0c1a228094b8c4bb72e84fc36ba6dff2b4bbea9d /src
parent4232a3080d936c1a8bd48c4bec5dc05f756a4223 (diff)
Remove deprecated fulsim code
Remove pretty old fulsim code which seems having no users also used interfaces not in open source libdrm, and call windows fulsim binary instead of linux. We will use current libdrm interface instead. Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/cl_command_queue.c217
-rw-r--r--src/cl_command_queue.h4
-rw-r--r--src/intel/intel_gpgpu.c17
3 files changed, 1 insertions, 237 deletions
diff --git a/src/cl_command_queue.c b/src/cl_command_queue.c
index 093bf07b..61039097 100644
--- a/src/cl_command_queue.c
+++ b/src/cl_command_queue.c
@@ -90,10 +90,6 @@ cl_command_queue_delete(cl_command_queue queue)
if (queue->ctx->queues == queue)
queue->ctx->queues = queue->next;
pthread_mutex_unlock(&queue->ctx->queue_lock);
- if (queue->fulsim_out != NULL) {
- cl_mem_delete(queue->fulsim_out);
- queue->fulsim_out = NULL;
- }
cl_thread_data_destroy(queue);
queue->thread_data = NULL;
@@ -179,197 +175,6 @@ cl_command_queue_bind_surface(cl_command_queue queue, cl_kernel k)
return CL_SUCCESS;
}
-
-#if USE_FULSIM
-extern void drm_intel_bufmgr_gem_stop_aubfile(cl_buffer_mgr);
-extern void drm_intel_bufmgr_gem_set_aubfile(cl_buffer_mgr, FILE*);
-extern void aub_exec_dump_raw_file(cl_buffer, size_t offset, size_t sz);
-
-static void
-cl_run_fulsim(void)
-{
- const char *run_it = getenv("OCL_SIMULATOR");
- const char *debug_mode = getenv("OCL_FULSIM_DEBUG_MODE");
- if (run_it == NULL || strcmp(run_it, "1")) return;
-
-#if EMULATE_GEN == 7 /* IVB */
- if (debug_mode == NULL || strcmp(debug_mode, "1"))
- system("wine AubLoad.exe dump.aub -device ivbB0");
- else
- system("wine AubLoad.exe dump.aub -device ivbB0 -debug");
-#elif EMULATE_GEN == 75 /* HSW */
- if (debug_mode == NULL || strcmp(debug_mode, "1"))
- system("wine AubLoad.exe dump.aub -device hsw.h.a0");
- else
- system("wine AubLoad.exe dump.aub -device hsw.h.a0 -debug");
-#else
-#error "Unknown device"
-#endif
-}
-
-/* Each buffer is dump using several chunks of this size */
-static const size_t chunk_sz = 8192u;
-
-static cl_int
-cl_fulsim_dump_all_surfaces(cl_command_queue queue, cl_kernel k)
-{
- cl_int err = CL_SUCCESS;
- cl_mem mem = NULL;
- int i;
- size_t j;
-
- /* Bind user defined surface */
- for (i = 0; i < k->arg_n; ++i) {
- size_t chunk_n, chunk_remainder;
- if (interp_kernel_get_arg_type(k->opaque, i) != GBE_ARG_GLOBAL_PTR)
- continue;
- mem = (cl_mem) k->args[i].mem;
- CHECK_MEM(mem);
- chunk_n = cl_buffer_get_size(mem->bo) / chunk_sz;
- chunk_remainder = cl_buffer_get_size(mem->bo) % chunk_sz;
- for (j = 0; j < chunk_n; ++j)
- aub_exec_dump_raw_file(mem->bo, j * chunk_sz, chunk_sz);
- if (chunk_remainder)
- aub_exec_dump_raw_file(mem->bo, chunk_n * chunk_sz, chunk_remainder);
- }
-error:
- return err;
-}
-
-struct bmphdr {
- /* 2 bytes of magic here, "BM", total header size is 54 bytes! */
- int filesize; /* 4 total file size incl header */
- short as0, as1; /* 8 app specific */
- int bmpoffset; /* 12 ofset of bmp data */
- int headerbytes; /* 16 bytes in header from this point (40 actually) */
- int width; /* 20 */
- int height; /* 24 */
- short nplanes; /* 26 no of color planes */
- short bpp; /* 28 bits/pixel */
- int compression; /* 32 BI_RGB = 0 = no compression */
- int sizeraw; /* 36 size of raw bmp file, excluding header, incl padding */
- int hres; /* 40 horz resolutions pixels/meter */
- int vres; /* 44 */
- int npalcolors; /* 48 No of colors in palette */
- int nimportant; /* 52 No of important colors */
- /* raw b, g, r data here, dword aligned per scan line */
-};
-
-static int*
-cl_read_bmp(const char *filename, int *width, int *height)
-{
- int n;
- struct bmphdr hdr;
-
- FILE *fp = fopen(filename, "rb");
- assert(fp);
-
- char magic[2];
- n = fread(&magic[0], 1, 2, fp);
- assert(n == 2 && magic[0] == 'B' && magic[1] == 'M');
-
- n = fread(&hdr, 1, sizeof(hdr), fp);
- assert(n == sizeof(hdr));
-
- assert(hdr.width > 0 &&
- hdr.height > 0 &&
- hdr.nplanes == 1
- && hdr.compression == 0);
-
- int *rgb32 = (int *) cl_malloc(hdr.width * hdr.height * sizeof(int));
- assert(rgb32);
- int x, y;
-
- int *dst = rgb32;
- for (y = 0; y < hdr.height; y++) {
- for (x = 0; x < hdr.width; x++) {
- assert(!feof(fp));
- int b = (getc(fp) & 0x0ff);
- int g = (getc(fp) & 0x0ff);
- int r = (getc(fp) & 0x0ff);
- *dst++ = (r | (g << 8) | (b << 16) | 0xff000000); /* abgr */
- }
- while (x & 3) {
- getc(fp);
- x++;
- }
- }
- fclose(fp);
- *width = hdr.width;
- *height = hdr.height;
- return rgb32;
-}
-
-static char*
-cl_read_dump(const char *name, size_t *size)
-{
- char *raw = NULL, *dump = NULL;
- size_t i, sz;
- int w, h;
- if ((raw = (char*) cl_read_bmp(name, &w, &h)) == NULL)
- return NULL;
- sz = w * h;
- dump = (char*) cl_malloc(sz);
- assert(dump);
- for (i = 0; i < sz; ++i)
- dump[i] = raw[4*i];
- cl_free(raw);
- if (size)
- *size = sz;
- return dump;
-}
-
-static cl_int
-cl_fulsim_read_all_surfaces(cl_command_queue queue, cl_kernel k)
-{
- cl_int err = CL_SUCCESS;
- cl_mem mem = NULL;
- char *from = NULL, *to = NULL;
- size_t size, j, chunk_n, chunk_remainder;
- int i, curr = 0;
- /* Bind user defined surface */
- for (i = 0; i < k->arg_n; ++i) {
- if (interp_kernel_get_arg_type(k->opaque, i) != GBE_ARG_GLOBAL_PTR)
- continue;
- mem = (cl_mem) k->args[i].mem;
- CHECK_MEM(mem);
- assert(mem->bo);
- chunk_n = cl_buffer_get_size(mem->bo) / chunk_sz;
- chunk_remainder = cl_buffer_get_size(mem->bo) % chunk_sz;
- to = cl_mem_map(mem, 1);
- for (j = 0; j < chunk_n; ++j) {
- char name[256];
- sprintf(name, "dump%03i.bmp", curr);
-#ifdef NDEBUG
- from = cl_read_dump(name, NULL);
-#else
- from = cl_read_dump(name, &size);
- assert(size == chunk_sz);
-#endif /* NDEBUG */
- memcpy(to + j*chunk_sz, from, chunk_sz);
- cl_free(from);
- curr++;
- }
- if (chunk_remainder) {
- char name[256];
- sprintf(name, "dump%03i.bmp", curr);
-#ifdef NDEBUG
- from = cl_read_dump(name, NULL);
-#else
- from = cl_read_dump(name, &size);
- assert(size == chunk_remainder);
-#endif /* NDEBUG */
- memcpy(to + chunk_n*chunk_sz, from, chunk_remainder);
- cl_free(from);
- curr++;
- }
- cl_mem_unmap(mem);
- }
-error:
- return err;
-}
-#endif
-
extern cl_int cl_command_queue_ND_range_gen7(cl_command_queue, cl_kernel, uint32_t, const size_t *, const size_t *, const size_t *);
static cl_int
@@ -398,33 +203,11 @@ cl_command_queue_ND_range(cl_command_queue queue,
/* Check that the user did not forget any argument */
TRY (cl_kernel_check_args, k);
-#if USE_FULSIM
- cl_buffer_mgr bufmgr = NULL;
- FILE *file = NULL;
- const char *run_it = getenv("OCL_SIMULATOR");
- if (run_it != NULL && strcmp(run_it, "1") == 0) {
- file = fopen("dump.aub", "wb");
- FATAL_IF (file == NULL, "Unable to open file dump.aub");
- bufmgr = cl_context_get_bufmgr(queue->ctx);
- drm_intel_bufmgr_gem_set_aubfile(bufmgr, file);
- }
-#endif /* USE_FULSIM */
-
if (ver == 7 || ver == 75 || ver == 8)
TRY (cl_command_queue_ND_range_gen7, queue, k, work_dim, global_wk_off, global_wk_sz, local_wk_sz);
else
FATAL ("Unknown Gen Device");
-#if USE_FULSIM
- if (run_it != NULL && strcmp(run_it, "1") == 0) {
- TRY (cl_fulsim_dump_all_surfaces, queue, k);
- drm_intel_bufmgr_gem_stop_aubfile(bufmgr);
- fclose(file);
- cl_run_fulsim();
- TRY (cl_fulsim_read_all_surfaces, queue, k);
- }
-#endif /* USE_FULSIM */
-
error:
return err;
}
diff --git a/src/cl_command_queue.h b/src/cl_command_queue.h
index 7ec1b6f2..47dae4a7 100644
--- a/src/cl_command_queue.h
+++ b/src/cl_command_queue.h
@@ -46,7 +46,6 @@ struct _cl_command_queue {
cl_command_queue prev, next; /* We chain the command queues together */
void *thread_data; /* Used to store thread context data */
cl_mem perf; /* Where to put the perf counters */
- cl_mem fulsim_out; /* Fulsim will output this buffer */
};
/* The macro to get the thread specified gpgpu struct. */
@@ -77,9 +76,6 @@ extern cl_int cl_command_queue_ND_range(cl_command_queue queue,
/* The memory object where to report the performance */
extern cl_int cl_command_queue_set_report_buffer(cl_command_queue, cl_mem);
-/* Fulsim will dump this buffer (mostly to check its consistency */
-cl_int cl_command_queue_set_fulsim_buffer(cl_command_queue, cl_mem);
-
/* Flush for the command queue */
extern cl_int cl_command_queue_flush(cl_command_queue);
diff --git a/src/intel/intel_gpgpu.c b/src/intel/intel_gpgpu.c
index ecb4fb5a..958d5aff 100644
--- a/src/intel/intel_gpgpu.c
+++ b/src/intel/intel_gpgpu.c
@@ -289,13 +289,6 @@ intel_gpgpu_set_base_address_gen7(intel_gpgpu_t *gpgpu)
OUT_BATCH(gpgpu->batch, 0 | (def_cc << 8) | BASE_ADDRESS_MODIFY); /* Indirect Obj Base Addr */
OUT_BATCH(gpgpu->batch, 0 | (def_cc << 8) | BASE_ADDRESS_MODIFY); /* Instruction Base Addr */
- /* If we output an AUB file, we limit the total size to 64MB */
-#if USE_FULSIM
- OUT_BATCH(gpgpu->batch, 0x04000000 | BASE_ADDRESS_MODIFY); /* General State Access Upper Bound */
- OUT_BATCH(gpgpu->batch, 0x04000000 | BASE_ADDRESS_MODIFY); /* Dynamic State Access Upper Bound */
- OUT_BATCH(gpgpu->batch, 0x04000000 | BASE_ADDRESS_MODIFY); /* Indirect Obj Access Upper Bound */
- OUT_BATCH(gpgpu->batch, 0x04000000 | BASE_ADDRESS_MODIFY); /* Instruction Access Upper Bound */
-#else
OUT_BATCH(gpgpu->batch, 0 | BASE_ADDRESS_MODIFY);
/* According to mesa i965 driver code, we must set the dynamic state access upper bound
* to a valid bound value, otherwise, the border color pointer may be rejected and you
@@ -303,7 +296,6 @@ intel_gpgpu_set_base_address_gen7(intel_gpgpu_t *gpgpu)
OUT_BATCH(gpgpu->batch, 0xfffff000 | BASE_ADDRESS_MODIFY);
OUT_BATCH(gpgpu->batch, 0 | BASE_ADDRESS_MODIFY);
OUT_BATCH(gpgpu->batch, 0 | BASE_ADDRESS_MODIFY);
-#endif /* USE_FULSIM */
ADVANCE_BATCH(gpgpu->batch);
}
@@ -341,13 +333,7 @@ intel_gpgpu_set_base_address_gen8(intel_gpgpu_t *gpgpu)
I915_GEM_DOMAIN_INSTRUCTION,
0 + (0 | (def_cc << 4) | (0 << 1)| BASE_ADDRESS_MODIFY));
OUT_BATCH(gpgpu->batch, 0);
- /* If we output an AUB file, we limit the total size to 64MB */
-#if USE_FULSIM
- OUT_BATCH(gpgpu->batch, 0x04000000 | BASE_ADDRESS_MODIFY); /* General State Access Upper Bound */
- OUT_BATCH(gpgpu->batch, 0x04000000 | BASE_ADDRESS_MODIFY); /* Dynamic State Access Upper Bound */
- OUT_BATCH(gpgpu->batch, 0x04000000 | BASE_ADDRESS_MODIFY); /* Indirect Obj Access Upper Bound */
- OUT_BATCH(gpgpu->batch, 0x04000000 | BASE_ADDRESS_MODIFY); /* Instruction Access Upper Bound */
-#else
+
OUT_BATCH(gpgpu->batch, 0xfffff000 | BASE_ADDRESS_MODIFY);
/* According to mesa i965 driver code, we must set the dynamic state access upper bound
* to a valid bound value, otherwise, the border color pointer may be rejected and you
@@ -355,7 +341,6 @@ intel_gpgpu_set_base_address_gen8(intel_gpgpu_t *gpgpu)
OUT_BATCH(gpgpu->batch, 0xfffff000 | BASE_ADDRESS_MODIFY);
OUT_BATCH(gpgpu->batch, 0xfffff000 | BASE_ADDRESS_MODIFY);
OUT_BATCH(gpgpu->batch, 0xfffff000 | BASE_ADDRESS_MODIFY);
-#endif /* USE_FULSIM */
ADVANCE_BATCH(gpgpu->batch);
}