dri/intel: Add explicit size parameter to intel_region_alloc_for_fd
Instead of assuming that the size will be height * pitch, have the caller pass in the size explicitly. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
parent
888533dcd6
commit
bf6591e948
|
@ -209,6 +209,7 @@ struct intel_region *
|
|||
intel_region_alloc_for_fd(struct intel_screen *screen,
|
||||
GLuint cpp,
|
||||
GLuint width, GLuint height, GLuint pitch,
|
||||
GLuint size,
|
||||
int fd, const char *name)
|
||||
{
|
||||
struct intel_region *region;
|
||||
|
@ -216,8 +217,7 @@ intel_region_alloc_for_fd(struct intel_screen *screen,
|
|||
int ret;
|
||||
uint32_t bit_6_swizzle, tiling;
|
||||
|
||||
buffer = drm_intel_bo_gem_create_from_prime(screen->bufmgr,
|
||||
fd, height * pitch);
|
||||
buffer = drm_intel_bo_gem_create_from_prime(screen->bufmgr, fd, size);
|
||||
if (buffer == NULL)
|
||||
return NULL;
|
||||
ret = drm_intel_bo_get_tiling(buffer, &tiling, &bit_6_swizzle);
|
||||
|
|
|
@ -91,7 +91,7 @@ struct intel_region *
|
|||
intel_region_alloc_for_fd(struct intel_screen *screen,
|
||||
GLuint cpp,
|
||||
GLuint width, GLuint height, GLuint pitch,
|
||||
int fd, const char *name);
|
||||
GLuint size, int fd, const char *name);
|
||||
|
||||
bool
|
||||
intel_region_flink(struct intel_region *region, uint32_t *name);
|
||||
|
|
|
@ -654,8 +654,8 @@ intel_create_image_from_fds(__DRIscreen *screen,
|
|||
return NULL;
|
||||
|
||||
image->region = intel_region_alloc_for_fd(intelScreen,
|
||||
1, width, height,
|
||||
strides[0], fds[0], "image");
|
||||
f->planes[0].cpp, width, height, strides[0],
|
||||
height * strides[0], fds[0], "image");
|
||||
if (image->region == NULL) {
|
||||
free(image);
|
||||
return NULL;
|
||||
|
|
|
@ -209,6 +209,7 @@ struct intel_region *
|
|||
intel_region_alloc_for_fd(struct intel_screen *screen,
|
||||
GLuint cpp,
|
||||
GLuint width, GLuint height, GLuint pitch,
|
||||
GLuint size,
|
||||
int fd, const char *name)
|
||||
{
|
||||
struct intel_region *region;
|
||||
|
@ -216,8 +217,7 @@ intel_region_alloc_for_fd(struct intel_screen *screen,
|
|||
int ret;
|
||||
uint32_t bit_6_swizzle, tiling;
|
||||
|
||||
buffer = drm_intel_bo_gem_create_from_prime(screen->bufmgr,
|
||||
fd, height * pitch);
|
||||
buffer = drm_intel_bo_gem_create_from_prime(screen->bufmgr, fd, size);
|
||||
if (buffer == NULL)
|
||||
return NULL;
|
||||
ret = drm_intel_bo_get_tiling(buffer, &tiling, &bit_6_swizzle);
|
||||
|
|
|
@ -92,6 +92,7 @@ struct intel_region *
|
|||
intel_region_alloc_for_fd(struct intel_screen *screen,
|
||||
GLuint cpp,
|
||||
GLuint width, GLuint height, GLuint pitch,
|
||||
GLuint size,
|
||||
int fd, const char *name);
|
||||
|
||||
bool
|
||||
|
|
|
@ -719,8 +719,8 @@ intel_create_image_from_fds(__DRIscreen *screen,
|
|||
return NULL;
|
||||
|
||||
image->region = intel_region_alloc_for_fd(intelScreen,
|
||||
1, width, height,
|
||||
strides[0], fds[0], "image");
|
||||
f->planes[0].cpp, width, height, strides[0],
|
||||
height * strides[0], fds[0], "image");
|
||||
if (image->region == NULL) {
|
||||
free(image);
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in New Issue