Go to the source code of this file.
Functions | |
static void | intelCreateSurface (struct intel_screen *intelScreen, struct pipe_winsys *winsys, unsigned handle) |
static void | intelPrintDRIInfo (struct intel_screen *intelScreen, __DRIscreenPrivate *sPriv, I830DRIPtr gDRIPriv) |
void | intelUpdateScreenRotation (__DRIscreenPrivate *sPriv, drmI830Sarea *sarea) |
Use the information in the sarea to update the screen parameters related to screen rotation. | |
boolean | intelCreatePools (__DRIscreenPrivate *sPriv) |
static const char * | intel_get_name (struct pipe_winsys *winsys) |
static void | intel_flush_frontbuffer (struct pipe_winsys *winsys, struct pipe_surface *surf, void *context_private) |
static boolean | intelInitDriver (__DRIscreenPrivate *sPriv) |
static void | intelDestroyScreen (__DRIscreenPrivate *sPriv) |
static boolean | intelCreateBuffer (__DRIscreenPrivate *driScrnPriv, __DRIdrawablePrivate *driDrawPriv, const __GLcontextModes *visual, boolean isPixmap) |
This is called when we need to set up GL rendering to a new X window. | |
static void | intelDestroyBuffer (__DRIdrawablePrivate *driDrawPriv) |
static int | intelGetSwapInfo (__DRIdrawablePrivate *dPriv, __DRIswapInfo *sInfo) |
Get information about previous buffer swaps. | |
static void | intelSetTexOffset (__DRIcontext *pDRICtx, int texname, unsigned long long offset, int depth, uint pitch) |
static __GLcontextModes * | intelFillInModes (unsigned pixel_bits, unsigned depth_bits, unsigned stencil_bits, boolean have_back_buffer) |
PUBLIC void * | __driCreateNewScreen_20050727 (__DRInativeDisplay *dpy, int scrn, __DRIscreen *psc, const __GLcontextModes *modes, const __DRIversion *ddx_version, const __DRIversion *dri_version, const __DRIversion *drm_version, const __DRIframebuffer *frame_buffer, drmAddress pSAREA, int fd, int internal_api_version, const __DRIinterfaceMethods *interface, __GLcontextModes **driver_modes) |
This is the bootstrap function for the driver. | |
Variables | |
PUBLIC const char | __driConfigOptions [] |
const uint | __driNConfigOptions = 3 |
struct dri_extension | card_extensions [] |
Extension strings exported by the intel driver. | |
static struct __DriverAPIRec | intelAPI |
PUBLIC void* __driCreateNewScreen_20050727 | ( | __DRInativeDisplay * | dpy, | |
int | scrn, | |||
__DRIscreen * | psc, | |||
const __GLcontextModes * | modes, | |||
const __DRIversion * | ddx_version, | |||
const __DRIversion * | dri_version, | |||
const __DRIversion * | drm_version, | |||
const __DRIframebuffer * | frame_buffer, | |||
drmAddress | pSAREA, | |||
int | fd, | |||
int | internal_api_version, | |||
const __DRIinterfaceMethods * | interface, | |||
__GLcontextModes ** | driver_modes | |||
) |
This is the bootstrap function for the driver.
libGL supplies all of the requisite information about the system, and the driver initializes itself. This routine also fills in the linked list pointed to by driver_modes
with the __GLcontextModes
that the driver can support for windows or pbuffers.
__DRIscreenPrivate
on success, or NULL
on failure. Definition at line 555 of file intel_screen.c.
References card_extensions, _I830DRIRec::cpp, and intelFillInModes().
00566 { 00567 __DRIscreenPrivate *psp; 00568 static const __DRIversion ddx_expected = { 1, 7, 0 }; 00569 static const __DRIversion dri_expected = { 4, 0, 0 }; 00570 static const __DRIversion drm_expected = { 1, 7, 0 }; 00571 00572 dri_interface = interface; 00573 00574 if (!driCheckDriDdxDrmVersions2("i915", 00575 dri_version, &dri_expected, 00576 ddx_version, &ddx_expected, 00577 drm_version, &drm_expected)) { 00578 return NULL; 00579 } 00580 00581 psp = __driUtilCreateNewScreen(dpy, scrn, psc, NULL, 00582 ddx_version, dri_version, drm_version, 00583 frame_buffer, pSAREA, fd, 00584 internal_api_version, &intelAPI); 00585 00586 if (psp != NULL) { 00587 I830DRIPtr dri_priv = (I830DRIPtr) psp->pDevPriv; 00588 *driver_modes = intelFillInModes(dri_priv->cpp * 8, 00589 (dri_priv->cpp == 2) ? 16 : 24, 00590 (dri_priv->cpp == 2) ? 0 : 8, 1); 00591 00592 /* Calling driInitExtensions here, with a NULL context pointer, 00593 * does not actually enable the extensions. It just makes sure 00594 * that all the dispatch offsets for all the extensions that 00595 * *might* be enables are known. This is needed because the 00596 * dispatch offsets need to be known when _mesa_context_create 00597 * is called, but we can't enable the extensions until we have a 00598 * context pointer. 00599 * 00600 * Hello chicken. Hello egg. How are you two today? 00601 */ 00602 driInitExtensions(NULL, card_extensions, GL_FALSE); 00603 } 00604 00605 return (void *) psp; 00606 }
static void intel_flush_frontbuffer | ( | struct pipe_winsys * | winsys, | |
struct pipe_surface * | surf, | |||
void * | context_private | |||
) | [static] |
Definition at line 252 of file intel_screen.c.
References intel_context::driDrawable, and intelDisplaySurface().
00255 { 00256 struct intel_context *intel = (struct intel_context *) context_private; 00257 __DRIdrawablePrivate *dPriv = intel->driDrawable; 00258 00259 intelDisplaySurface(dPriv, surf, NULL); 00260 }
static const char* intel_get_name | ( | struct pipe_winsys * | winsys | ) | [static] |
static boolean intelCreateBuffer | ( | __DRIscreenPrivate * | driScrnPriv, | |
__DRIdrawablePrivate * | driDrawPriv, | |||
const __GLcontextModes * | visual, | |||
boolean | isPixmap | |||
) | [static] |
This is called when we need to set up GL rendering to a new X window.
Definition at line 337 of file intel_screen.c.
References CALLOC_STRUCT, PIPE_FORMAT_A8R8G8B8_UNORM, PIPE_FORMAT_NONE, PIPE_FORMAT_R5G6B5_UNORM, PIPE_FORMAT_S8Z24_UNORM, PIPE_FORMAT_Z16_UNORM, st_create_framebuffer(), and intel_framebuffer::stfb.
00340 { 00341 if (isPixmap) { 00342 return GL_FALSE; /* not implemented */ 00343 } 00344 else { 00345 enum pipe_format colorFormat, depthFormat, stencilFormat; 00346 struct intel_framebuffer *intelfb = CALLOC_STRUCT(intel_framebuffer); 00347 00348 if (!intelfb) 00349 return GL_FALSE; 00350 00351 if (visual->redBits == 5) 00352 colorFormat = PIPE_FORMAT_R5G6B5_UNORM; 00353 else 00354 colorFormat = PIPE_FORMAT_A8R8G8B8_UNORM; 00355 00356 if (visual->depthBits == 16) 00357 depthFormat = PIPE_FORMAT_Z16_UNORM; 00358 else if (visual->depthBits == 24) 00359 depthFormat = PIPE_FORMAT_S8Z24_UNORM; 00360 else 00361 depthFormat = PIPE_FORMAT_NONE; 00362 00363 if (visual->stencilBits == 8) 00364 stencilFormat = PIPE_FORMAT_S8Z24_UNORM; 00365 else 00366 stencilFormat = PIPE_FORMAT_NONE; 00367 00368 intelfb->stfb = st_create_framebuffer(visual, 00369 colorFormat, 00370 depthFormat, 00371 stencilFormat, 00372 driDrawPriv->w, 00373 driDrawPriv->h, 00374 (void*) intelfb); 00375 if (!intelfb->stfb) { 00376 free(intelfb); 00377 return GL_FALSE; 00378 } 00379 00380 driDrawPriv->driverPrivate = (void *) intelfb; 00381 return GL_TRUE; 00382 } 00383 }
boolean intelCreatePools | ( | __DRIscreenPrivate * | sPriv | ) |
Definition at line 225 of file intel_screen.c.
References intel_screen::havePools, intel_screen(), intelUpdateScreenRotation(), and intel_screen::sarea.
00226 { 00227 //unsigned batchPoolSize = 1024*1024; 00228 struct intel_screen *intelScreen = intel_screen(sPriv); 00229 00230 if (intelScreen->havePools) 00231 return GL_TRUE; 00232 00233 intelScreen->havePools = GL_TRUE; 00234 00235 intelUpdateScreenRotation(sPriv, intelScreen->sarea); 00236 00237 return GL_TRUE; 00238 }
static void intelCreateSurface | ( | struct intel_screen * | intelScreen, | |
struct pipe_winsys * | winsys, | |||
unsigned | handle | |||
) | [static] |
Definition at line 50 of file intel_screen.c.
References assert, intel_screen::base, pipe_texture::block, intel_screen::buffer, intel_screen::cpp, pipe_texture::depth, dri_bo(), pipe_texture::format, intel_screen::front, pipe_screen::get_tex_surface, intel_screen::height, pipe_texture::height, intel_be_buffer_from_handle(), pipe_texture::last_level, pf_get_block(), pipe_buffer_reference(), PIPE_BUFFER_USAGE_GPU_WRITE, PIPE_FORMAT_A8R8G8B8_UNORM, PIPE_TEXTURE_2D, PIPE_TEXTURE_USAGE_DISPLAY_TARGET, intel_screen::pitch, intel_be_device::screen, intel_screen::surface, pipe_texture::target, pipe_texture::tex_usage, intel_screen::texture, pipe_screen::texture_blanket, intel_screen::width, and pipe_texture::width.
00051 { 00052 struct pipe_screen *screen = intelScreen->base.screen; 00053 struct pipe_texture *texture; 00054 struct pipe_texture templat; 00055 struct pipe_surface *surface; 00056 struct pipe_buffer *buffer; 00057 unsigned pitch; 00058 00059 assert(intelScreen->front.cpp == 4); 00060 00061 buffer = intel_be_buffer_from_handle(&intelScreen->base, 00062 "front", handle); 00063 00064 if (!buffer) 00065 return; 00066 00067 intelScreen->front.buffer = dri_bo(buffer); 00068 00069 memset(&templat, 0, sizeof(templat)); 00070 templat.tex_usage |= PIPE_TEXTURE_USAGE_DISPLAY_TARGET; 00071 templat.target = PIPE_TEXTURE_2D; 00072 templat.last_level = 0; 00073 templat.depth[0] = 1; 00074 templat.format = PIPE_FORMAT_A8R8G8B8_UNORM; 00075 templat.width[0] = intelScreen->front.width; 00076 templat.height[0] = intelScreen->front.height; 00077 pf_get_block(templat.format, &templat.block); 00078 pitch = intelScreen->front.pitch; 00079 00080 texture = screen->texture_blanket(screen, 00081 &templat, 00082 &pitch, 00083 buffer); 00084 00085 /* Unref the buffer we don't need it anyways */ 00086 pipe_buffer_reference(screen, &buffer, NULL); 00087 00088 surface = screen->get_tex_surface(screen, 00089 texture, 00090 0, 00091 0, 00092 0, 00093 PIPE_BUFFER_USAGE_GPU_WRITE); 00094 00095 intelScreen->front.texture = texture; 00096 intelScreen->front.surface = surface; 00097 }
static void intelDestroyBuffer | ( | __DRIdrawablePrivate * | driDrawPriv | ) | [static] |
Definition at line 386 of file intel_screen.c.
References assert, intel_framebuffer(), st_unreference_framebuffer(), and intel_framebuffer::stfb.
00387 { 00388 struct intel_framebuffer *intelfb = intel_framebuffer(driDrawPriv); 00389 assert(intelfb->stfb); 00390 st_unreference_framebuffer(&intelfb->stfb); 00391 free(intelfb); 00392 }
static void intelDestroyScreen | ( | __DRIscreenPrivate * | sPriv | ) | [static] |
Definition at line 321 of file intel_screen.c.
References intel_screen::base, FREE, intel_be_destroy_device(), and intel_screen().
00322 { 00323 struct intel_screen *intelScreen = intel_screen(sPriv); 00324 00325 intel_be_destroy_device(&intelScreen->base); 00326 /* intelUnmapScreenRegions(intelScreen); */ 00327 00328 FREE(intelScreen); 00329 sPriv->private = NULL; 00330 }
static __GLcontextModes* intelFillInModes | ( | unsigned | pixel_bits, | |
unsigned | depth_bits, | |||
unsigned | stencil_bits, | |||
boolean | have_back_buffer | |||
) | [static] |
Definition at line 458 of file intel_screen.c.
00460 { 00461 __GLcontextModes *modes; 00462 __GLcontextModes *m; 00463 unsigned num_modes; 00464 unsigned depth_buffer_factor; 00465 unsigned back_buffer_factor; 00466 GLenum fb_format; 00467 GLenum fb_type; 00468 00469 /* GLX_SWAP_COPY_OML is only supported because the Intel driver doesn't 00470 * support pageflipping at all. 00471 */ 00472 static const GLenum back_buffer_modes[] = { 00473 GLX_NONE, GLX_SWAP_UNDEFINED_OML, GLX_SWAP_COPY_OML 00474 }; 00475 00476 uint8_t depth_bits_array[3]; 00477 uint8_t stencil_bits_array[3]; 00478 uint8_t msaa_samples_array[1]; 00479 00480 00481 depth_bits_array[0] = 0; 00482 depth_bits_array[1] = depth_bits; 00483 depth_bits_array[2] = depth_bits; 00484 msaa_samples_array[0] = 0; 00485 00486 /* Just like with the accumulation buffer, always provide some modes 00487 * with a stencil buffer. It will be a sw fallback, but some apps won't 00488 * care about that. 00489 */ 00490 stencil_bits_array[0] = 0; 00491 stencil_bits_array[1] = 0; 00492 if (depth_bits == 24) 00493 stencil_bits_array[1] = (stencil_bits == 0) ? 8 : stencil_bits; 00494 00495 stencil_bits_array[2] = (stencil_bits == 0) ? 8 : stencil_bits; 00496 00497 depth_buffer_factor = ((depth_bits != 0) || (stencil_bits != 0)) ? 3 : 1; 00498 back_buffer_factor = (have_back_buffer) ? 3 : 1; 00499 00500 num_modes = depth_buffer_factor * back_buffer_factor * 4; 00501 00502 if (pixel_bits == 16) { 00503 fb_format = GL_RGB; 00504 fb_type = GL_UNSIGNED_SHORT_5_6_5; 00505 } 00506 else { 00507 fb_format = GL_BGRA; 00508 fb_type = GL_UNSIGNED_INT_8_8_8_8_REV; 00509 } 00510 00511 modes = 00512 (*dri_interface->createContextModes) (num_modes, 00513 sizeof(__GLcontextModes)); 00514 m = modes; 00515 if (!driFillInModes(&m, fb_format, fb_type, 00516 depth_bits_array, stencil_bits_array, 00517 depth_buffer_factor, back_buffer_modes, 00518 back_buffer_factor, msaa_samples_array, 1, GLX_TRUE_COLOR)) { 00519 fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, 00520 __LINE__); 00521 return NULL; 00522 } 00523 if (!driFillInModes(&m, fb_format, fb_type, 00524 depth_bits_array, stencil_bits_array, 00525 depth_buffer_factor, back_buffer_modes, 00526 back_buffer_factor, msaa_samples_array, 1, GLX_DIRECT_COLOR)) { 00527 fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__, 00528 __LINE__); 00529 return NULL; 00530 } 00531 00532 /* Mark the visual as slow if there are "fake" stencil bits. 00533 */ 00534 for (m = modes; m != NULL; m = m->next) { 00535 if ((m->stencilBits != 0) && (m->stencilBits != stencil_bits)) { 00536 m->visualRating = GLX_SLOW_CONFIG; 00537 } 00538 } 00539 00540 return modes; 00541 }
static int intelGetSwapInfo | ( | __DRIdrawablePrivate * | dPriv, | |
__DRIswapInfo * | sInfo | |||
) | [static] |
Get information about previous buffer swaps.
Definition at line 399 of file intel_screen.c.
00400 { 00401 if ((dPriv == NULL) || (dPriv->driverPrivate == NULL) 00402 || (sInfo == NULL)) { 00403 return -1; 00404 } 00405 00406 return 0; 00407 }
static boolean intelInitDriver | ( | __DRIscreenPrivate * | sPriv | ) | [static] |
Definition at line 263 of file intel_screen.c.
References __driConfigOptions, assert, intel_be_device::base, intel_screen::base, _I830DRIRec::bitsPerPixel, CALLOC_STRUCT, _I830DRIRec::cpp, intel_screen::cpp, _I830DRIRec::deviceID, intel_screen::deviceID, intel_screen::drmMinor, intel_be_device::fd, pipe_winsys::flush_frontbuffer, intel_screen::front, pipe_winsys::get_name, intel_be_init_device(), intel_flush_frontbuffer(), intel_get_name(), intelPrintDRIInfo(), intelUpdateScreenRotation(), intel_screen::optionCache, intel_screen::sarea, and _I830DRIRec::sarea_priv_offset.
00264 { 00265 struct intel_screen *intelScreen; 00266 I830DRIPtr gDRIPriv = (I830DRIPtr) sPriv->pDevPriv; 00267 00268 PFNGLXSCRENABLEEXTENSIONPROC glx_enable_extension = 00269 (PFNGLXSCRENABLEEXTENSIONPROC) (*dri_interface-> 00270 getProcAddress("glxEnableExtension")); 00271 void *const psc = sPriv->psc->screenConfigs; 00272 00273 if (sPriv->devPrivSize != sizeof(I830DRIRec)) { 00274 fprintf(stderr, 00275 "\nERROR! sizeof(I830DRIRec) does not match passed size from device driver\n"); 00276 return GL_FALSE; 00277 } 00278 00279 /* Allocate the private area */ 00280 intelScreen = CALLOC_STRUCT(intel_screen); 00281 if (!intelScreen) 00282 return GL_FALSE; 00283 00284 /* parse information in __driConfigOptions */ 00285 driParseOptionInfo(&intelScreen->optionCache, 00286 __driConfigOptions, __driNConfigOptions); 00287 00288 sPriv->private = (void *) intelScreen; 00289 00290 intelScreen->sarea = (drmI830Sarea *) (((GLubyte *) sPriv->pSAREA) + 00291 gDRIPriv->sarea_priv_offset); 00292 intelScreen->deviceID = gDRIPriv->deviceID; 00293 intelScreen->front.cpp = gDRIPriv->cpp; 00294 intelScreen->drmMinor = sPriv->drmMinor; 00295 00296 assert(gDRIPriv->bitsPerPixel == 16 || 00297 gDRIPriv->bitsPerPixel == 32); 00298 00299 intelUpdateScreenRotation(sPriv, intelScreen->sarea); 00300 00301 if (0) 00302 intelPrintDRIInfo(intelScreen, sPriv, gDRIPriv); 00303 00304 if (glx_enable_extension != NULL) { 00305 (*glx_enable_extension) (psc, "GLX_SGI_swap_control"); 00306 (*glx_enable_extension) (psc, "GLX_SGI_video_sync"); 00307 (*glx_enable_extension) (psc, "GLX_MESA_swap_control"); 00308 (*glx_enable_extension) (psc, "GLX_MESA_swap_frame_usage"); 00309 (*glx_enable_extension) (psc, "GLX_SGI_make_current_read"); 00310 } 00311 00312 intelScreen->base.base.flush_frontbuffer = intel_flush_frontbuffer; 00313 intelScreen->base.base.get_name = intel_get_name; 00314 intel_be_init_device(&intelScreen->base, sPriv->fd, intelScreen->deviceID); 00315 00316 return GL_TRUE; 00317 }
static void intelPrintDRIInfo | ( | struct intel_screen * | intelScreen, | |
__DRIscreenPrivate * | sPriv, | |||
I830DRIPtr | gDRIPriv | |||
) | [static] |
Definition at line 120 of file intel_screen.c.
References intel_screen::front, _I830DRIRec::mem, intel_screen::offset, intel_screen::pitch, and intel_screen::size.
00122 { 00123 fprintf(stderr, "*** Front size: 0x%x offset: 0x%x pitch: %d\n", 00124 intelScreen->front.size, intelScreen->front.offset, 00125 intelScreen->front.pitch); 00126 fprintf(stderr, "*** Memory : 0x%x\n", gDRIPriv->mem); 00127 }
static void intelSetTexOffset | ( | __DRIcontext * | pDRICtx, | |
int | texname, | |||
unsigned long long | offset, | |||
int | depth, | |||
uint | pitch | |||
) | [static] |
Definition at line 411 of file intel_screen.c.
References st_context::pipe, st_texture_object::pt, intel_context::st, and st_texture_object().
00413 { 00414 abort(); 00415 #if 0 00416 struct intel_context *intel = (struct intel_context*) 00417 ((__DRIcontextPrivate*)pDRICtx->private)->driverPrivate; 00418 struct gl_texture_object *tObj = _mesa_lookup_texture(&intel->ctx, texname); 00419 struct st_texture_object *stObj = st_texture_object(tObj); 00420 00421 if (!stObj) 00422 return; 00423 00424 if (stObj->pt) 00425 st->pipe->texture_release(intel->st->pipe, &stObj->pt); 00426 00427 stObj->imageOverride = GL_TRUE; 00428 stObj->depthOverride = depth; 00429 stObj->pitchOverride = pitch; 00430 00431 if (offset) 00432 stObj->textureOffset = offset; 00433 #endif 00434 }
void intelUpdateScreenRotation | ( | __DRIscreenPrivate * | sPriv, | |
drmI830Sarea * | sarea | |||
) |
Use the information in the sarea to update the screen parameters related to screen rotation.
Needs to be called locked.
Definition at line 164 of file intel_screen.c.
References assert, intel_be_device::base, intel_screen::base, intel_screen::buffer, intel_screen::cpp, driBOUnReference(), driDeleteBuffers(), driGenBuffers(), intel_screen::front, drmI830Sarea::front_bo_handle, drmI830Sarea::front_handle, drmI830Sarea::front_offset, drmI830Sarea::front_size, intel_screen::handle, drmI830Sarea::height, intel_screen::height, intel_screen(), intelCreateSurface(), intel_screen::map, intel_screen::offset, pipe_surface_reference(), pipe_texture_reference(), drmI830Sarea::pitch, intel_screen::pitch, intel_screen::size, intel_be_device::staticPool, intel_screen::surface, intel_screen::texture, drmI830Sarea::width, and intel_screen::width.
00165 { 00166 struct intel_screen *intelScreen = intel_screen(sPriv); 00167 00168 if (intelScreen->front.map) { 00169 drmUnmap(intelScreen->front.map, intelScreen->front.size); 00170 intelScreen->front.map = NULL; 00171 } 00172 00173 if (intelScreen->front.buffer) 00174 driDeleteBuffers(1, &intelScreen->front.buffer); 00175 00176 intelScreen->front.width = sarea->width; 00177 intelScreen->front.height = sarea->height; 00178 intelScreen->front.offset = sarea->front_offset; 00179 intelScreen->front.pitch = sarea->pitch * intelScreen->front.cpp; 00180 intelScreen->front.size = sarea->front_size; 00181 intelScreen->front.handle = sarea->front_handle; 00182 00183 assert( sarea->front_size >= 00184 intelScreen->front.pitch * intelScreen->front.height ); 00185 00186 #if 0 /* JB not important */ 00187 if (!sarea->front_handle) 00188 return; 00189 00190 if (drmMap(sPriv->fd, 00191 sarea->front_handle, 00192 intelScreen->front.size, 00193 (drmAddress *) & intelScreen->front.map) != 0) { 00194 fprintf(stderr, "drmMap(frontbuffer) failed!\n"); 00195 return; 00196 } 00197 #endif 00198 00199 #if 0 /* JB */ 00200 if (intelScreen->staticPool) { 00201 driGenBuffers(intelScreen->staticPool, "static region", 1, 00202 &intelScreen->front.buffer, 64, 00203 DRM_BO_FLAG_MEM_TT | DRM_BO_FLAG_NO_MOVE | 00204 DRM_BO_FLAG_READ | DRM_BO_FLAG_WRITE, 0); 00205 00206 driBOSetStatic(intelScreen->front.buffer, 00207 intelScreen->front.offset, 00208 intelScreen->front.pitch * intelScreen->front.height, 00209 intelScreen->front.map, 0); 00210 } 00211 #else 00212 if (intelScreen->base.staticPool) { 00213 if (intelScreen->front.buffer) { 00214 driBOUnReference(intelScreen->front.buffer); 00215 pipe_surface_reference(&intelScreen->front.surface, NULL); 00216 pipe_texture_reference(&intelScreen->front.texture, NULL); 00217 } 00218 intelCreateSurface(intelScreen, &intelScreen->base.base, sarea->front_bo_handle); 00219 } 00220 #endif 00221 }
PUBLIC const char __driConfigOptions[] |
Initial value:
DRI_CONF_BEGIN DRI_CONF_SECTION_PERFORMANCE DRI_CONF_SECTION_END DRI_CONF_SECTION_QUALITY DRI_CONF_SECTION_END DRI_CONF_END
Definition at line 99 of file intel_screen.c.
const uint __driNConfigOptions = 3 |
Definition at line 108 of file intel_screen.c.
struct dri_extension card_extensions[] |
Extension strings exported by the intel driver.
Definition at line 78 of file intel_context.c.
struct __DriverAPIRec intelAPI [static] |
Initial value:
{ .InitDriver = intelInitDriver, .DestroyScreen = intelDestroyScreen, .CreateContext = intelCreateContext, .DestroyContext = intelDestroyContext, .CreateBuffer = intelCreateBuffer, .DestroyBuffer = intelDestroyBuffer, .SwapBuffers = intelSwapBuffers, .MakeCurrent = intelMakeCurrent, .UnbindContext = intelUnbindContext, .GetSwapInfo = intelGetSwapInfo, .GetMSC = driGetMSC32, .WaitForMSC = driWaitForMSC32, .WaitForSBC = NULL, .SwapBuffersMSC = NULL, .CopySubBuffer = intelCopySubBuffer, .setTexOffset = intelSetTexOffset, }
Definition at line 437 of file intel_screen.c.