mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
Bug #9604: Fix a static buffer allocation failure.
The pool that the static buffer got allocated from was sized by pitch * height, but the buffer generated from it had its size aligned to a tile boundary, so allocation failed if pitch * height wasn't aligned. However, the 2d driver ensures that the size ends at a tile boundary, so just pass the 2d driver's buffer size rather than calculating it.
This commit is contained in:
parent
869b8ad499
commit
5a3d985395
3 changed files with 6 additions and 3 deletions
|
|
@ -446,8 +446,8 @@ GLboolean intelInitContext( struct intel_context *intel,
|
|||
intelScreen->cpp,
|
||||
intelScreen->front.pitch / intelScreen->cpp,
|
||||
intelScreen->height,
|
||||
intelScreen->front.tiled != 0); /* 0: LINEAR */
|
||||
|
||||
intelScreen->front.size,
|
||||
intelScreen->front.tiled != 0);
|
||||
|
||||
intel->back_region =
|
||||
intel_region_create_static(intel,
|
||||
|
|
@ -457,6 +457,7 @@ GLboolean intelInitContext( struct intel_context *intel,
|
|||
intelScreen->cpp,
|
||||
intelScreen->back.pitch / intelScreen->cpp,
|
||||
intelScreen->height,
|
||||
intelScreen->back.size,
|
||||
intelScreen->back.tiled != 0);
|
||||
|
||||
/* Still assuming front.cpp == depth.cpp
|
||||
|
|
@ -473,6 +474,7 @@ GLboolean intelInitContext( struct intel_context *intel,
|
|||
intelScreen->cpp,
|
||||
intelScreen->depth.pitch / intelScreen->cpp,
|
||||
intelScreen->height,
|
||||
intelScreen->depth.size,
|
||||
intelScreen->depth.tiled != 0);
|
||||
|
||||
intel_bufferobj_init( intel );
|
||||
|
|
|
|||
|
|
@ -122,10 +122,10 @@ struct intel_region *intel_region_create_static( struct intel_context *intel,
|
|||
GLuint cpp,
|
||||
GLuint pitch,
|
||||
GLuint height,
|
||||
GLuint size,
|
||||
GLboolean tiled )
|
||||
{
|
||||
struct intel_region *region = calloc(sizeof(*region), 1);
|
||||
GLuint size = cpp * pitch * height;
|
||||
GLint pool;
|
||||
|
||||
DBG("%s\n", __FUNCTION__);
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ struct intel_region *intel_region_create_static( struct intel_context *intel,
|
|||
GLuint cpp,
|
||||
GLuint pitch,
|
||||
GLuint height,
|
||||
GLuint size,
|
||||
GLboolean tiled );
|
||||
|
||||
/* Map/unmap regions. This is refcounted also:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue