1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "i915_sw_winsys.h" 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "i915_sw_public.h" 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "util/u_memory.h" 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Helper functions 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgi915_sw_get_device_id(unsigned int *device_id) 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* just pick a i945 hw id */ 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *device_id = 0x27A2; 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic void 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgi915_sw_destroy(struct i915_winsys *iws) 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct i915_sw_winsys *isws = i915_sw_winsys(iws); 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org FREE(isws); 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Exported functions 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct i915_winsys * 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgi915_sw_winsys_create() 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct i915_sw_winsys *isws; 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned int deviceID; 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org isws = CALLOC_STRUCT(i915_sw_winsys); 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (!isws) 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return NULL; 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org i915_sw_get_device_id(&deviceID); 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org i915_sw_winsys_init_batchbuffer_functions(isws); 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org i915_sw_winsys_init_buffer_functions(isws); 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org i915_sw_winsys_init_fence_functions(isws); 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org isws->base.destroy = i915_sw_destroy; 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org isws->base.pci_id = deviceID; 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org isws->max_batch_size = 16 * 4096; 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org isws->dump_cmd = debug_get_bool_option("I915_DUMP_CMD", FALSE); 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org return &isws->base; 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 57