diff mbox

[i-g-t] lib: Pass I915_TILING_Y to the kernel if Yf or Ys

Message ID 1478772958-6170-1-git-send-email-tomeu.vizoso@collabora.com (mailing list archive)
State New, archived
Headers show

Commit Message

Tomeu Vizoso Nov. 10, 2016, 10:15 a.m. UTC
GEM_SET_TILING doesn't care about Yf or Ys, so just pass Y.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 lib/ioctl_wrappers.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Tvrtko Ursulin Nov. 10, 2016, 4:18 p.m. UTC | #1
On 10/11/2016 10:15, Tomeu Vizoso wrote:
> GEM_SET_TILING doesn't care about Yf or Ys, so just pass Y.
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>  lib/ioctl_wrappers.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
> index 95bc5e268bcd..eabf3ee3abe6 100644
> --- a/lib/ioctl_wrappers.c
> +++ b/lib/ioctl_wrappers.c
> @@ -158,6 +158,9 @@ int __gem_set_tiling(int fd, uint32_t handle, uint32_t tiling, uint32_t stride)
>
>  	igt_require_intel(fd);
>
> +	if (tiling == I915_TILING_Yf || tiling == I915_TILING_Ys)
> +		tiling = I915_TILING_Y;
> +

This is a bit nasty, breaks tests (or keeps them broken) and more so I 
can't really figure out why would you want to do this?

>  	memset(&st, 0, sizeof(st));
>  	do {
>  		st.handle = handle;
>

Regards,

Tvrtko
Tvrtko Ursulin Nov. 11, 2016, 10:27 a.m. UTC | #2
On 10/11/2016 16:18, Tvrtko Ursulin wrote:
> On 10/11/2016 10:15, Tomeu Vizoso wrote:
>> GEM_SET_TILING doesn't care about Yf or Ys, so just pass Y.
>>
>> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
>> ---
>>  lib/ioctl_wrappers.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
>> index 95bc5e268bcd..eabf3ee3abe6 100644
>> --- a/lib/ioctl_wrappers.c
>> +++ b/lib/ioctl_wrappers.c
>> @@ -158,6 +158,9 @@ int __gem_set_tiling(int fd, uint32_t handle,
>> uint32_t tiling, uint32_t stride)
>>
>>      igt_require_intel(fd);
>>
>> +    if (tiling == I915_TILING_Yf || tiling == I915_TILING_Ys)
>> +        tiling = I915_TILING_Y;
>> +
>
> This is a bit nasty, breaks tests (or keeps them broken) and more so I
> can't really figure out why would you want to do this?

If I change the "tiling = I915_TILING_Y" to "I915_TILING_NONE" above 
then kms_flip_tiling passes in all but two subtests. (And those two fail 
with crc errors due broken watermarks, so not an IGT issue.)

So not going deeper into how IGT handles tiling nowadays, please 
consider the above option to fix this. It is correct at least anyway for 
i915 expectations.

Regards,

Tvrtko
diff mbox

Patch

diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 95bc5e268bcd..eabf3ee3abe6 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -158,6 +158,9 @@  int __gem_set_tiling(int fd, uint32_t handle, uint32_t tiling, uint32_t stride)
 
 	igt_require_intel(fd);
 
+	if (tiling == I915_TILING_Yf || tiling == I915_TILING_Ys)
+		tiling = I915_TILING_Y;
+
 	memset(&st, 0, sizeof(st));
 	do {
 		st.handle = handle;