on them too to make sure we fix FBC on them.
Also, it seems KBL is passing the tests.
If you reached this commit through git bisect or if you just want more
information about FBC, please see:
commit a98ee79317b4091cafb502b4ffdbbbe1335e298c
Author: Paulo Zanoni
Date: Tue Feb 16 18:4
BC is disabled, so it won't force TearFree.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 19 +++
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index fc3c094..3d84ce3 10
.
Signed-off-by: Paulo Zanoni
---
tests/kms_frontbuffer_tracking.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index b4fbbc5..c6d6bc0 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests
C was disabled, so it wouldn't force TearFree.
v2: Extract intel_sanitize_fbc_option() (Chris).
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 32
1 file changed, 24 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c
on them too to make sure we fix FBC on them.
Also, it seems KBL is passing the tests.
If you reached this commit through git bisect or if you just want more
information about FBC, please see:
commit a98ee79317b4091cafb502b4ffdbbbe1335e298c
Author: Paulo Zanoni
Date: Tue Feb 16 18:4
Em Qua, 2017-01-25 às 17:26 +, Chris Wilson escreveu:
> Remove WaGsvDisableTurbo and WaRsUseTimeoutMode as these were only
> for
> pre-production Broxton devices, and this code is now defunct.
Can you please also patch intel_detect_preproduction_hw()?
Thanks,
Paulo
>
> Signed-off-by: Chris
Em Qui, 2017-01-26 às 15:02 +0200, Ville Syrjälä escreveu:
> On Thu, Jan 26, 2017 at 12:50:28PM +, Chris Wilson wrote:
> >
> > As we add new generations, we should keep detecting new system
> > development platforms that were temporarily enabled (via
> > "i915.alpha_support") and now supersede
#x27;phys_addr_t'. The return value is actually a physical address and
everything else in the stolen memory code seems to be using
phys_addr_t, so fix i915_stolen_to_physical() to use phys_addr_t.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_gem_stolen.c | 16 +---
1
Em Sex, 2017-01-27 às 15:59 +0200, Ville Syrjälä escreveu:
> On Thu, Jan 26, 2017 at 06:19:07PM -0200, Paulo Zanoni wrote:
> >
> > The i915_stolen_to_physical() function has 'unsigned long' as its
> > return type but it returns the 'base' variable, which i
rough the scatterlists used to program the GTT
> entries),
> we should treat it as dma_addr_t throughout.
I'm not a specialist here, but from what I could learn/understand, this
seems good. The patch seems to do what it says, so:
Reviewed-by: Paulo Zanoni
But now that I looked some m
Em Sex, 2017-01-27 às 17:20 +, Chris Wilson escreveu:
> Just do a quick check that the stolen memory address range doesn't
> overflow our chosen integer type.
Reviewed-by: Paulo Zanoni
>
> Signed-off-by: Chris Wilson
> ---
> drivers/gpu/drm/i915/i915_gem_stolen.c |
e VCO. Further patches could unify them even
more if that's desired.
While at it, merge some lines that can fit 80 columns in those
functions.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_cdclk.c | 120 ++---
1 file changed, 30 insertions(+), 90
.
Possible disadvantages with the new code:
- A few lines bigger.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_cdclk.c | 103 ++---
1 file changed, 62 insertions(+), 41 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_cdclk.c
b/drivers/gp
rying to check which functions run on each platform
may end up getting confused while reading the code.
Fix the potential confusion by limiting the else if statements to only
check for the platform that was not already checked earlier in the if
ladder.
Signed-off-by: Paulo Zanoni
---
drivers/gp
: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_cdclk.c | 84 --
1 file changed, 45 insertions(+), 39 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_cdclk.c
b/drivers/gpu/drm/i915/intel_cdclk.c
index d505ff1..6efc5f4 100644
--- a/drivers/gpu/drm/i915
Hi
I've been trying to understand the clocking code and spotted some
possible improvements. None of these changes are actually necessary
for anything, but IMHO they make the code a little easier to read and
later extend. Feel free to bikeshed or even NAK my proposals.
Thanks,
Paulo
Paulo Z
Em Sex, 2017-02-17 às 16:05 +0200, Ville Syrjälä escreveu:
> On Fri, Feb 17, 2017 at 11:22:07AM -0200, Paulo Zanoni wrote:
> >
> > Possible problems of the current if-ladder:
> > - It's a huge if ladder with almost a different check for each of
> > o
Em Sex, 2017-02-17 às 15:49 +0200, Ville Syrjälä escreveu:
> On Fri, Feb 17, 2017 at 11:22:05AM -0200, Paulo Zanoni wrote:
> >
> > Each x_modeset_calc_cdclk() has to do the same platform checks
> > twice,
> > so extract them to a single function. This way, the platfor
.
Possible disadvantages with the new code:
- A few lines bigger.
v2: Don't unsort the list. Now the list almost matches the enum
definition, with the exception of CHV, KBL and GLK, which are listed
along their predecessors (Ville).
Cc: Ville Syrjälä
Signed-off-by: Paulo Zanoni
---
drive
rying to check which functions run on each platform
may end up getting confused while reading the code.
Fix the potential confusion by limiting the else if statements to only
check for the platform that was not already checked earlier in the if
ladder.
Signed-off-by: Paulo Zanoni
---
drivers/gp
had 2 different patches addressing these problems,
but wiht Ville's suggestion I think it makes more sense to keep
everything in a single patch (Ville).
Cc: Ville Syrjälä
Cc: Rodrigo Vivi
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_drv.h | 4 +-
drivers/gp
With Ville's comments addressed. The main difference now is that what used to be
patches 1 and 2 are now just patch 1.
Paulo Zanoni (3):
drm/i915: unify the x_modeset_calc_cdclk() functions
drm/i915: remove potentially confusing IS_G4X checks
drm/i915: reorganize the get_cdclk assig
xpections/expectations/
Reviewed-by: Paulo Zanoni
>
> Cc: Maarten Lankhorst
> Cc: Paulo Zanoni
> Signed-off-by: Ander Conselvan de Oliveira r...@intel.com>
> ---
> tests/kms_frontbuffer_tracking.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff -
Em Ter, 2017-02-21 às 13:51 +0200, Ville Syrjälä escreveu:
> On Mon, Feb 20, 2017 at 05:00:42PM -0300, Paulo Zanoni wrote:
> >
> > Possible problems of the current if-ladder:
> > - It's a huge if ladder with almost a different check for each of
> > o
Em Ter, 2017-02-21 às 14:26 +0200, Ander Conselvan De Oliveira
escreveu:
> On Mon, 2017-02-20 at 17:00 -0300, Paulo Zanoni wrote:
> >
> > Possible problems of the current if-ladder:
> > - It's a huge if ladder with almost a different check for each of
> > o
Move the {skl,bxt}_{i,uni}nit_cdclk declarations to the place where
the intel_cdclk.c functions are declared since these functions have
moved there.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_drv.h | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a
Em Qua, 2017-02-08 às 15:12 +0200, Joonas Lahtinen escreveu:
> "BIT(max) - 1" will overflow when max = 32, and GCC will complain.
> We already have GENMASK for generating the mask, use it!
>
> v2: Majestic off by one spotted (Chris)
>
> Signed-off-by: Joonas Lahtinen
> Cc: Chris Wilson
> ---
>
e brief testing, it also
seems that this commit prevents the machine from completely freezing
when we run igt/kms_fbc_crc (see fd.o #92355).
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92355
Cc: Matt Roper
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_drv.h | 4 +
drive
uot;you touched
registers while the device is suspended" WARNs. But this was some time
ago and I can't remember exactly which conditions were necessary to
reproduce the problem.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion
Don't try to list in comments the cases where we should enable or
disable FBC: it varies a lot with the hardware generations and the
code should be the documentation. Also notice that there's already a
huge gap between the comments and what's in the code.
Signed-off-by: Paulo Zanon
p track
of the previously selected CRTC when we do invalidate/flush. We're
also going to continue the enable/disable/activate/deactivate concept
in the next patches.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_display.c | 3 +-
drivers/gpu/drm/i915/intel_drv.h | 2 +-
We're going to kill intel_fbc_find_crtc(), that's why a big part of
the logic moved from intel_fbc_find_crtc() to crtc_is_valid().
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 26 --
1 file changed, 16 insertions(+), 10 deletions(-)
di
will just start/stop FBC without
changing its associated pipe. This is the same naming scheme we use in
other features, such as PSR.
This will also help in case we decide to move FBC to pipe_config or
something else later.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_drv.h
There's no need to stop and restart FBC: a nuke should be fine.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 9477379..b9
ible to implement a way to
free+alloc the CFB during said stride change, but it would involve a
lot of book-keeping - exactly as mentioned above - just for a rare
case, so for now I'll keep it simple and just deactivate FBC. Besides,
we may not even need to disable FBC since we do CFB over-allo
If we run igt/kms_frontbuffer_tracking, this message will appear
thousands of times, eating a significant part of our dmesg buffer.
It's part of the expected FBC behavior, so let's just silence it.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 2 --
1 file
These things can't change without a full modeset.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 48d8cfc..af
full correct terminology is not complete yet, so
there is still some confusion that will be solved in the next patches.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_debugfs.c | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 10 ++-
drivers/gpu/drm/i915/intel_display.c | 4 +-
driver
This moves the pre-gen4 check from update() to enable(). The HAS_DDI
in the original code is not needed since only gen 2/3 have the plane
swapping code.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 8 ++--
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a
These also can't change without a full modeset.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index af22bc8..7f54b6f 1
combination drm_crtc *crtc + intel_crtc *intel_crtc, and on the
mentioned commit we'll get rid of the drm_crtc variable, so let's do
an intermediate commit with the rename, so on the next commit we'll
have just struct intel_crtc *crtc.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i
Make sure we deactivate FBC at intel_fbc_init(), so we can remove the
call from intel_display.c.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_display.c | 3 ---
drivers/gpu/drm/i915/intel_fbc.c | 5 +++--
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers
at happened right at that time."
So I guess we're fine for flips. But I can't really say I tested FBC
on these ancient platforms - nor that I'll ever propose enabling FBC
by default on them exactly because of problems like these.
Testcase: igt/kms_frontbuffer_tracking/fbc*-flipt
.
Credits-to: Damien Lespiau
Cc: Damien Lespiau
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_debugfs.c | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 19 +
drivers/gpu/drm/i915/intel_drv.h| 1 -
drivers/gpu/drm/i915/intel_fbc.c| 77
always do more and more code reworks, but this series kills the
last real bugs I can see on HSW+, so it will be time to consider enabling FBC on
these platforms after we merge the series.
Thanks,
Paulo
Paulo Zanoni (18):
drm/i915: change no_fbc_reason from enum to string
drm/i915: don't st
me later.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 5dab0e0..bf855b2 100644
--- a/drivers/gpu/drm/i915/intel_fbc.c
+++ b/drivers/gpu/
simpler.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_drv.h | 1 -
drivers/gpu/drm/i915/intel_fbc.c | 25 ++---
2 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index f04f56f
everything still
works as expected.
Signed-off-by: Paulo Zanoni
---
tests/kms_frontbuffer_tracking.c | 47 +++-
1 file changed, 46 insertions(+), 1 deletion(-)
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 2c0295c..e183a06
This will be used by the stridechange subtest.
Signed-off-by: Paulo Zanoni
---
tests/kms_frontbuffer_tracking.c | 27 +++
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 421f949
This fixes the failures for cases where you use --run-subtest to run
single subtests that don't use any drawing patterns.
Signed-off-by: Paulo Zanoni
---
tests/kms_frontbuffer_tracking.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/kms_frontbuffer_tracking.c b/
w which of the tests marked as skipped were
actual FBC tests.
Signed-off-by: Paulo Zanoni
---
tests/kms_frontbuffer_tracking.c | 29 ++---
1 file changed, 2 insertions(+), 27 deletions(-)
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index e18
-3243,8 +3278,11 @@ int main(int argc, char *argv[])
> igt_subtest_f("%s-%s-draw-%s",
> feature_str(t.feature),
> format_str(t.format),
> - igt_draw
2015-10-26 12:59 GMT-02:00 David Weinehall :
> On Fri, Oct 23, 2015 at 11:50:46AM -0200, Paulo Zanoni wrote:
>
> [snip]
>
>> It's not clear to me, please clarify: now the tests that were
>> previously completely hidden will be listed in --list-subtests and
>> wil
2015-10-26 15:30 GMT-02:00 David Weinehall :
> On Mon, Oct 26, 2015 at 02:44:18PM -0200, Paulo Zanoni wrote:
>> 2015-10-26 12:59 GMT-02:00 David Weinehall :
>> > On Fri, Oct 23, 2015 at 11:50:46AM -0200, Paulo Zanoni wrote:
>> >
>> > [snip]
>> >
>&g
"%s-%s-%s-%s-multidraw",
>> feature_str(t.feature),
>> pipes_str(t.pipes),
>> plane_str(t.plane),
>> - fbs_str(t.fbs))
>> + fbs_str(t.fbs)) {
>> + if (t.slow)
>> + igt_slow_combinatorial();
>> multidraw_subtest(&t);
>> + }
>> TEST_MODE_ITER_END
>>
>> TEST_MODE_ITER_BEGIN(t)
>> @@ -3224,8 +3256,11 @@ int main(int argc, char *argv[])
>> t.method != IGT_DRAW_MMAP_GTT)
>> continue;
>>
>> - igt_subtest_f("%s-farfromfence", feature_str(t.feature))
>> + igt_subtest_f("%s-farfromfence", feature_str(t.feature)) {
>> + if (t.slow)
>> + igt_slow_combinatorial();
>> farfromfence_subtest(&t);
>> + }
>> TEST_MODE_ITER_END
>>
>> TEST_MODE_ITER_BEGIN(t)
>> @@ -3243,8 +3278,11 @@ int main(int argc, char *argv[])
>> igt_subtest_f("%s-%s-draw-%s",
>> feature_str(t.feature),
>> format_str(t.format),
>> - igt_draw_get_method_name(t.method))
>> + igt_draw_get_method_name(t.method)) {
>> + if (t.slow)
>> + igt_slow_combinatorial();
>> format_draw_subtest(&t);
>> + }
>> }
>> TEST_MODE_ITER_END
>>
>> @@ -3256,8 +3294,11 @@ int main(int argc, char *argv[])
>> continue;
>> igt_subtest_f("%s-%s-scaledprimary",
>> feature_str(t.feature),
>> - fbs_str(t.fbs))
>> + fbs_str(t.fbs)) {
>> + if (t.slow)
>> + igt_slow_combinatorial();
>> scaledprimary_subtest(&t);
>> + }
>> TEST_MODE_ITER_END
>>
>> TEST_MODE_ITER_BEGIN(t)
>> @@ -3268,19 +3309,31 @@ int main(int argc, char *argv[])
>> t.method != IGT_DRAW_MMAP_CPU)
>> continue;
>>
>> - igt_subtest_f("%s-modesetfrombusy", feature_str(t.feature))
>> + igt_subtest_f("%s-modesetfrombusy", feature_str(t.feature)) {
>> + if (t.slow)
>> + igt_slow_combinatorial();
>> modesetfrombusy_subtest(&t);
>> + }
>>
>> if (t.feature & FEATURE_FBC)
>> - igt_subtest_f("%s-badstride", feature_str(t.feature))
>> + igt_subtest_f("%s-badstride",
>> feature_str(t.feature)) {
>> + if (t.slow)
>> + igt_slow_combinatorial();
>> badstride_subtest(&t);
>> + }
>>
>> if (t.feature & FEATURE_PSR)
>> - igt_subtest_f("%s-slowdraw", feature_str(t.feature))
>> + igt_subtest_f("%s-slowdraw", feature_str(t.feature))
>> {
>> + if (t.slow)
>> + igt_slow_combinatorial();
>> slow_draw_subtest(&t);
>> + }
>>
>> - igt_subtest_f("%s-suspend", feature_str(t.feature))
>> + igt_subtest_f("%s-suspend", feature_str(t.feature)) {
>> + if (t.slow)
>> + igt_slow_combinatorial();
>> suspend_subtest(&t);
>> + }
>> TEST_MODE_ITER_END
>>
>> igt_fixture
>> --
>> 2.6.1
>>
>> ___
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Paulo Zanoni
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
If we run igt/kms_frontbuffer_tracking, this message will appear
thousands of times, eating a significant part of our dmesg buffer.
It's part of the expected FBC behavior, so let's just silence it.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 2 --
1 file
Make the code easier to read.
Suggested-by: Chris Wilson
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 13 +++--
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 7d8e996..4d6ebc7
Although the term "nuke" is part of the FBC spec, it's not very
intuitive, so let's rename it to make it easier for people that are
not familiar with the spec.
Requested-by: Chris Wilson
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 7 ---
1 file c
We already check if the CRTC is visible, and it shouldn't be possible
to have a visible CRTC without an FB.
This was noticed by both Chris and Ville on different ocasions.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 2 +-
1 file changed, 1 insertion(+), 1 del
There's no need to stop and restart FBC: a nuke should be fine. The
specific check for ORIGIN_FLIP is not needed anymore since we have an
early return for the ORIGIN_FLIP && dev_priv->fbc.enabled case.
v2: Make it simpler (Chris).
Signed-off-by: Paulo Zanoni
---
driv
Make sure we deactivate FBC at intel_fbc_init(), so we can remove the
call from intel_display.c.
v2: Keep/improve the comment (Chris).
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_display.c | 3 ---
drivers/gpu/drm/i915/intel_fbc.c | 8 ++--
2 files changed, 6 insertions
kms_frontbuffer_tracking/fbc*-fliptrack
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/i915_reg.h | 3 +
drivers/gpu/drm/i915/intel_display.c | 1 -
drivers/gpu/drm/i915/intel_drv.h | 2
introduce
enable/disable + activate/deactivate, this will be even simpler as
we'll set the CRTC at enable time. So all the
activate/deactivate/update code can just look at the single CRTC
variable regardless of the current state.
v2: Improve commit message (Chris).
Signed-off-by: Paulo Zanoni
--
.
Credits-to: Damien Lespiau
Cc: Damien Lespiau
Reviewed-by: Daniel Vetter
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_debugfs.c | 2 +-
drivers/gpu/drm/i915/i915_drv.h | 19 +
drivers/gpu/drm/i915/intel_drv.h| 1 -
drivers/gpu/drm/i915/intel_fbc.c| 77
p track
of the previously selected CRTC when we do invalidate/flush. We're
also going to continue the enable/disable/activate/deactivate concept
in the next patches.
v2: Rebase.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_display.c | 3 +-
drivers/gpu/drm/i915/intel
This moves the pre-gen4 check from update() to enable(). The HAS_DDI
in the original code is not needed since only gen 2/3 have the plane
swapping code.
v2: Rebase.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 9 +++--
1 file changed, 3 insertions(+), 6 deletions
This patch by itself has no benefits other than
making review and rebase easier. Please see the next patches for more
details on the conversion.
v2:
- Rebase.
- Improve commit message (Chris).
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_debugfs.c | 2 +-
drivers/gpu/drm
8f7
Author: Paulo Zanoni
Date: Thu Oct 1 19:55:57 2015 -0300
drm/i915: fix CFB size calculation
Requested-by: Daniel Vetter
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/
know, every review
request is implemented here.
Thanks Chris for the reviews so far!
Paulo
Paulo Zanoni (26):
drm/i915: change no_fbc_reason from enum to string
drm/i915: don't stop+start FBC at every flip
drm/i915: rename intel_fbc_nuke to intel_fbc_recompress
drm/i915: only nuke FBC
We're going to kill intel_fbc_find_crtc(), that's why a big part of
the logic moved from intel_fbc_find_crtc() to crtc_is_valid().
v2:
- Rebase due to pipe_a_only change.
- Split the multiline conditional (Chris).
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_
Don't try to list in comments the cases where we should enable or
disable FBC: it varies a lot with the hardware generations and the
code should be the documentation. Also notice that there's already a
huge gap between the comments and what's in the code.
Signed-off-by: Paulo Zanon
Instead of waiting for 50ms, just wait until the next vblank, since
it's the minimum requirement.
This moves PC7 residency on my specific BDW machine running Cinnamon
from 60-70% to 84-89%. Without FBC, I get 20-25%. I'm using a
3200x1800 eDP panel.
Signed-off-by: Paulo Zanoni
---
d
he code as
suggested by Daniel or we add some nice comments explaining why is FBC
so special.
Cc: Jason Wessel
Cc: Jesse Barnes
Cc: Daniel Vetter
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 6 --
1 file changed, 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel
king the work function a
normal work instead of a delayed work, and it will be responsible for
sleeping the appropriate amount of time itself. This way, after it
wakes up it can grab the lock, ask "were we delayed or cancelled?" and
then go back to sleep, enable FBC or give up.
Signed-off-by
ts the very basic code on enable() and
disable(). The next commits will take care of moving more stuff from
update() to the new functions.
v2:
- Rebase.
- Improve commit message (Chris).
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/intel_dis
combination drm_crtc *crtc + intel_crtc *intel_crtc, and on the
mentioned commit we'll get rid of the drm_crtc variable, so let's do
an intermediate commit with the rename, so on the next commit we'll
have just struct intel_crtc *crtc.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i
ible to implement a way to
free+alloc the CFB during said stride change, but it would involve a
lot of book-keeping - exactly as mentioned above - just for a rare
case, so for now I'll keep it simple and just deactivate FBC. Besides,
we may not even need to disable FBC since we do CFB over-allo
These also can't change without a full modeset.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 6aa9af8..a9f133a 1
me later.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 17f098d..29d61d1 100644
--- a/drivers/gpu/drm/i915/intel_fbc.c
+++ b/drivers/gpu/
uot;you touched
registers while the device is suspended" WARNs. But this was some time
ago and I can't remember exactly which conditions were necessary to
reproduce the problem.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion
These things can't change without a full modeset.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 0ba25b9..6a
Directly call intel_fbc_calculate_cfb_size() in the only place that
actually needs it, and use the proper check before removing the stolen
node. IMHO, this change makes our code easier to understand.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/i915_drv.h | 1 -
drivers/gpu/drm/i915
continue;
>
> - igt_subtest_f("%s-%s-draw-%s",
> - feature_str(t.feature),
> - format_str(t.format),
> - igt_draw_get_method_name(t.method))
> + igt_subtest_slow_f(t.slow,
> + "%s-%s-draw-%s",
> + feature_str(t.feature),
> + format_str(t.format),
> + igt_draw_get_method_name(t.method))
> format_draw_subtest(&t);
> }
> TEST_MODE_ITER_END
> @@ -3275,9 +3288,10 @@ int main(int argc, char *argv[])
> t.plane != PLANE_PRI ||
> t.method != IGT_DRAW_MMAP_CPU)
> continue;
> - igt_subtest_f("%s-%s-scaledprimary",
> - feature_str(t.feature),
> - fbs_str(t.fbs))
> + igt_subtest_slow_f(t.slow,
> + "%s-%s-scaledprimary",
> + feature_str(t.feature),
> + fbs_str(t.fbs))
> scaledprimary_subtest(&t);
> TEST_MODE_ITER_END
>
> @@ -3289,22 +3303,32 @@ int main(int argc, char *argv[])
> t.method != IGT_DRAW_MMAP_CPU)
> continue;
>
> - igt_subtest_f("%s-modesetfrombusy", feature_str(t.feature))
> + igt_subtest_slow_f(t.slow,
> + "%s-modesetfrombusy",
> + feature_str(t.feature))
> modesetfrombusy_subtest(&t);
>
> if (t.feature & FEATURE_FBC) {
> - igt_subtest_f("%s-badstride", feature_str(t.feature))
> + igt_subtest_slow_f(t.slow,
> + "%s-badstride",
> + feature_str(t.feature))
> badstride_subtest(&t);
>
> - igt_subtest_f("%s-stridechange",
> feature_str(t.feature))
> + igt_subtest_slow_f(t.slow,
> + "%s-stridechange",
> + feature_str(t.feature))
> stridechange_subtest(&t);
> }
>
> if (t.feature & FEATURE_PSR)
> - igt_subtest_f("%s-slowdraw", feature_str(t.feature))
> + igt_subtest_slow_f(t.slow,
> + "%s-slowdraw",
> + feature_str(t.feature))
> slow_draw_subtest(&t);
>
> - igt_subtest_f("%s-suspend", feature_str(t.feature))
> + igt_subtest_slow_f(t.slow,
> + "%s-suspend",
> + feature_str(t.feature))
> suspend_subtest(&t);
> TEST_MODE_ITER_END
>
> --
> 2.6.2
>
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Paulo Zanoni
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
ble_pipe(intel_crtc);
>
> ironlake_pfit_disable(intel_crtc, false);
> --
> 2.4.10
>
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Paulo Zanoni
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
2015-10-30 5:56 GMT-02:00 David Weinehall :
> On Wed, Oct 28, 2015 at 02:12:15PM -0200, Paulo Zanoni wrote:
>> 2015-10-28 9:29 GMT-02:00 David Weinehall :
>> > Some tests should not be run by default, due to their slow,
>> > and sometimes superfluous, nature.
>> &
Newlines are not needed and they're not used by the other messages. I
added the newline by mistake.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm
he code as
suggested by Daniel or we add some nice comments explaining why is FBC
so special.
v2: Rebase due to new patch order.
Cc: Jason Wessel
Cc: Jesse Barnes
Cc: Daniel Vetter
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 6 --
1 file changed, 6 deletions(-)
diff
Although the term "nuke" is part of the FBC spec, it's not very
intuitive, so let's rename it to make it easier for people that are
not familiar with the spec.
Requested-by: Chris Wilson
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 7 ---
1 file c
If we run igt/kms_frontbuffer_tracking, this message will appear
thousands of times, eating a significant part of our dmesg buffer.
It's part of the expected FBC behavior, so let's just silence it.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 2 --
1 file
combination drm_crtc *crtc + intel_crtc *intel_crtc, and on the
mentioned commit we'll get rid of the drm_crtc variable, so let's do
an intermediate commit with the rename, so on the next commit we'll
have just struct intel_crtc *crtc.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i
el_fbc_disable() from
intel_modeset_init() won't work. It's better to make sure
intel_fbc_init() already puts the hardware in the expected state, so
we can put nice assertions in the other functions.
v2: Keep/improve the comment (Chris).
v3: Improve the commit message a little bit.
Sign
uot;you touched
registers while the device is suspended" WARNs. But this was some time
ago and I can't remember exactly which conditions were necessary to
reproduce the problem.
v2: Rebase to new series order.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 3 ++-
1 file ch
changes are needed, please go check the complete series (the short answer is:
most of the changes are needed for the new model with enable/disable +
activate/deactivate).
After all these patches are merged I'll resend the rest.
Thanks for all the reviews so far,
Paulo
Paulo Zanoni (13):
drm
me later.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index dee99c9..e99aacc 100644
--- a/drivers/gpu/drm/i915/intel_fbc.c
+++ b/drivers/gpu/
We already check if the CRTC is visible, and it shouldn't be possible
to have a visible CRTC without an FB.
This was noticed by both Chris and Ville on different ocasions.
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 2 +-
1 file changed, 1 insertion(+), 1 del
8f7
Author: Paulo Zanoni
Date: Thu Oct 1 19:55:57 2015 -0300
drm/i915: fix CFB size calculation
Requested-by: Daniel Vetter
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/
Make the code easier to read.
Suggested-by: Chris Wilson
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_fbc.c | 13 +++--
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c
index 19a3e93..55bef12
We're going to kill intel_fbc_find_crtc(), that's why a big part of
the logic moved from intel_fbc_find_crtc() to crtc_is_valid().
v2:
- Rebase due to pipe_a_only change.
- Split the multiline conditional (Chris).
Signed-off-by: Paulo Zanoni
---
drivers/gpu/drm/i915/intel_
Don't try to list in comments the cases where we should enable or
disable FBC: it varies a lot with the hardware generations and the
code should be the documentation. Also notice that there's already a
huge gap between the comments and what's in the code.
Signed-off-by: Paulo Zanon
this IOCTL wouldn't hurt :)
Reviewed-by: Paulo Zanoni
>
> Signed-off-by: Imre Deak
> ---
> drivers/gpu/drm/i915/i915_gem.c | 8 +++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
>
601 - 700 of 3545 matches
Mail list logo