packspu_config.c revision 6457f9bc953a052259ba55fbf6f3d6faace120fa
8d43244aa3d322f7807a4b0488f1038dd2595dc1vboxsync/* Copyright (c) 2001, Stanford University
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync * All rights reserved
682a27d94b9116c719038882487b99053985f91avboxsync *
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync * See the file LICENSE.txt for information on redistributing this software.
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync */
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync#include "packspu.h"
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#include "cr_string.h"
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#include "cr_error.h"
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#include "cr_spu.h"
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#include "cr_mem.h"
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync#include <stdio.h>
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncstatic void __setDefaults( void )
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync{
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync crMemZero(pack_spu.context, CR_MAX_CONTEXTS * sizeof(ContextInfo));
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync pack_spu.numContexts = 0;
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync crMemZero(pack_spu.thread, MAX_THREADS * sizeof(ThreadInfo));
682a27d94b9116c719038882487b99053985f91avboxsync pack_spu.numThreads = 0;
b8f36a8f77f0140f48170d5b3cd9ee9ea1c14294vboxsync}
8d43244aa3d322f7807a4b0488f1038dd2595dc1vboxsync
682a27d94b9116c719038882487b99053985f91avboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncstatic void set_emit( void *foo, const char *response )
810e2dff19cb2bda7ee6f98fa1a9e25ca1bb32d8vboxsync{
682a27d94b9116c719038882487b99053985f91avboxsync sscanf( response, "%d", &(pack_spu.emit_GATHER_POST_SWAPBUFFERS) );
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync}
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsyncstatic void set_swapbuffer_sync( void *foo, const char *response )
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync{
682a27d94b9116c719038882487b99053985f91avboxsync sscanf( response, "%d", &(pack_spu.swapbuffer_sync) );
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync}
682a27d94b9116c719038882487b99053985f91avboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync
3c3a5ab35783f4d31cb5d3a15db9daadeb804daavboxsync/* No SPU options yet. Well.. not really..
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync */
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncSPUOptions packSPUOptions[] = {
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync { "emit_GATHER_POST_SWAPBUFFERS", CR_BOOL, 1, "0", NULL, NULL,
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync "Emit a parameteri after SwapBuffers", (SPUOptionCB)set_emit },
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync { "swapbuffer_sync", CR_BOOL, 1, "1", NULL, NULL,
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync "Sync on SwapBuffers", (SPUOptionCB) set_swapbuffer_sync },
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync { NULL, CR_BOOL, 0, NULL, NULL, NULL, NULL, NULL },
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync};
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync
c785dbab313731d1f4662b4684c0808cc14703dbvboxsyncvoid packspuSetVBoxConfiguration( const SPU *child_spu )
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync{
24b9d11a24f96f5da0351475e0b6486ec4cb0d30vboxsync __setDefaults();
24b9d11a24f96f5da0351475e0b6486ec4cb0d30vboxsync pack_spu.emit_GATHER_POST_SWAPBUFFERS = 0;
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync pack_spu.swapbuffer_sync = 0;
24b9d11a24f96f5da0351475e0b6486ec4cb0d30vboxsync pack_spu.name = crStrdup("vboxhgcm://llp:7000");
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync pack_spu.buffer_size = 5 * 1024 * 1024;
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync}
c785dbab313731d1f4662b4684c0808cc14703dbvboxsync