mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 17:36:11 +00:00
tests/gem_largeobject: accomodate for puny apertures
... like on my i855gm. Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
7c8d41f4d9
commit
6b4f5c7ad8
@ -43,19 +43,38 @@
|
|||||||
|
|
||||||
unsigned char data[OBJ_SIZE];
|
unsigned char data[OBJ_SIZE];
|
||||||
|
|
||||||
|
static uint64_t
|
||||||
|
gem_aperture_size(int fd)
|
||||||
|
{
|
||||||
|
struct drm_i915_gem_get_aperture aperture;
|
||||||
|
|
||||||
|
aperture.aper_size = 512*1024*1024;
|
||||||
|
(void)drmIoctl(fd, DRM_IOCTL_I915_GEM_GET_APERTURE, &aperture);
|
||||||
|
return aperture.aper_size;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_large_object(int fd)
|
test_large_object(int fd)
|
||||||
{
|
{
|
||||||
struct drm_i915_gem_create create;
|
struct drm_i915_gem_create create;
|
||||||
struct drm_i915_gem_pwrite pwrite;
|
struct drm_i915_gem_pwrite pwrite;
|
||||||
struct drm_i915_gem_pin pin;
|
struct drm_i915_gem_pin pin;
|
||||||
|
uint32_t obj_size;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
memset(&create, 0, sizeof(create));
|
memset(&create, 0, sizeof(create));
|
||||||
memset(&pwrite, 0, sizeof(pwrite));
|
memset(&pwrite, 0, sizeof(pwrite));
|
||||||
memset(&pin, 0, sizeof(pin));
|
memset(&pin, 0, sizeof(pin));
|
||||||
|
|
||||||
create.size = OBJ_SIZE;
|
if (gem_aperture_size(fd)*3/4 < OBJ_SIZE/2)
|
||||||
|
obj_size = OBJ_SIZE / 4;
|
||||||
|
else if (gem_aperture_size(fd)*3/4 < OBJ_SIZE)
|
||||||
|
obj_size = OBJ_SIZE / 2;
|
||||||
|
else
|
||||||
|
obj_size = OBJ_SIZE;
|
||||||
|
create.size = obj_size;
|
||||||
|
printf("obj size %i\n", obj_size);
|
||||||
|
|
||||||
ret = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE, &create);
|
ret = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE, &create);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
fprintf(stderr, "object creation failed: %s\n",
|
fprintf(stderr, "object creation failed: %s\n",
|
||||||
@ -72,7 +91,7 @@ test_large_object(int fd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pwrite.handle = create.handle;
|
pwrite.handle = create.handle;
|
||||||
pwrite.size = OBJ_SIZE;
|
pwrite.size = obj_size;
|
||||||
pwrite.data_ptr = (uint64_t)data;
|
pwrite.data_ptr = (uint64_t)data;
|
||||||
|
|
||||||
ret = ioctl(fd, DRM_IOCTL_I915_GEM_PWRITE, &pwrite);
|
ret = ioctl(fd, DRM_IOCTL_I915_GEM_PWRITE, &pwrite);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user