diff options
author | Jakob Bornecrantz <jakob@vmware.com> | 2010-01-23 01:41:49 +0000 |
---|---|---|
committer | Jakob Bornecrantz <jakob@vmware.com> | 2010-01-28 17:32:54 +0100 |
commit | 44a0e0a099eeeb6501359f08449dcaa5e9899398 (patch) | |
tree | 2bf83614ef44ed81cb16060e7601275c306969c1 /libkms/intel.c | |
parent | f2730574f2d204eee62d6f37aa56567bd2d94a26 (diff) |
libkms: Rework interface to not duplicate fields from kms and make formats explicit
List of changes:
Fixes the cursor size to 64x64, you still need ti supply width and height
Explicitly make the cursor format A8R8G8B8
Explicitly make the scanout format X8R8G8B8
Diffstat (limited to 'libkms/intel.c')
-rw-r--r-- | libkms/intel.c | 31 |
1 files changed, 5 insertions, 26 deletions
diff --git a/libkms/intel.c b/libkms/intel.c index 670494e7..a1914f82 100644 --- a/libkms/intel.c +++ b/libkms/intel.c @@ -53,29 +53,8 @@ static int intel_get_prop(struct kms_driver *kms, unsigned key, unsigned *out) { switch (key) { - case KMS_MAX_SCANOUT_WIDTH: - *out = 4096; - break; - case KMS_MAX_SCANOUT_HEIGHT: - *out = 4096; - break; - case KMS_MIN_SCANOUT_WIDTH: - *out = 1; - break; - case KMS_MIN_SCANOUT_HEIGHT: - *out = 1; - break; - case KMS_MAX_CURSOR_WIDTH: - *out = 64; - break; - case KMS_MAX_CURSOR_HEIGHT: - *out = 64; - break; - case KMS_MIN_CURSOR_WIDTH: - *out = 64; - break; - case KMS_MIN_CURSOR_HEIGHT: - *out = 64; + case KMS_BO_TYPE: + *out = KMS_BO_TYPE_SCANOUT_X8R8G8B8 | KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8; break; default: return -EINVAL; @@ -116,10 +95,10 @@ intel_bo_create(struct kms_driver *kms, if (!bo) return -ENOMEM; - if (type == KMS_BO_TYPE_CURSOR) { + if (type == KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8) { pitch = 64 * 4; size = 64 * 64 * 4; - } else if (type == KMS_BO_TYPE_SCANOUT) { + } else if (type == KMS_BO_TYPE_SCANOUT_X8R8G8B8) { pitch = width * 4; pitch = (pitch + 512 - 1) & ~(512 - 1); size = pitch * ((height + 4 - 1) & ~(4 - 1)); @@ -140,7 +119,7 @@ intel_bo_create(struct kms_driver *kms, bo->base.pitch = pitch; *out = &bo->base; - if (type == KMS_BO_TYPE_SCANOUT && pitch > 512) { + if (type == KMS_BO_TYPE_SCANOUT_X8R8G8B8 && pitch > 512) { struct drm_i915_gem_set_tiling tile; memset(&tile, 0, sizeof(tile)); |