* [PATCH] exa: Flush (S)IFC to the frontbuffer immediately.
@ 2011-02-07 18:37 Maarten Maathuis
[not found] ` <1297103867-5718-1-git-send-email-madman2003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Maarten Maathuis @ 2011-02-07 18:37 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
- NV50+: This avoids high latency while typing with core fonts for example.
Signed-off-by: Maarten Maathuis <madman2003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
src/nv04_exa.c | 4 ++++
src/nv50_exa.c | 4 ++++
src/nvc0_exa.c | 4 ++++
3 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/src/nv04_exa.c b/src/nv04_exa.c
index 267c7b5..2603bd4 100644
--- a/src/nv04_exa.c
+++ b/src/nv04_exa.c
@@ -340,6 +340,7 @@ NV04EXAUploadIFC(ScrnInfoPtr pScrn, const char *src, int src_pitch,
PixmapPtr pDst, int x, int y, int w, int h, int cpp)
{
NVPtr pNv = NVPTR(pScrn);
+ ScreenPtr pScreen = pDst->drawable.pScreen;
struct nouveau_channel *chan = pNv->chan;
struct nouveau_grobj *clip = pNv->NvClipRectangle;
struct nouveau_grobj *ifc = pNv->NvImageFromCpu;
@@ -413,6 +414,9 @@ NV04EXAUploadIFC(ScrnInfoPtr pScrn, const char *src, int src_pitch,
}
chan->flush_notify = NULL;
+
+ if (pDst == pScreen->GetScreenPixmap(pScreen))
+ FIRE_RING(chan);
return TRUE;
}
diff --git a/src/nv50_exa.c b/src/nv50_exa.c
index e8ff5aa..85baa68 100644
--- a/src/nv50_exa.c
+++ b/src/nv50_exa.c
@@ -372,6 +372,7 @@ NV50EXAUploadSIFC(const char *src, int src_pitch,
PixmapPtr pdpix, int x, int y, int w, int h, int cpp)
{
NV50EXA_LOCALS(pdpix);
+ ScreenPtr pScreen = pdpix->drawable.pScreen;
int line_dwords = (w * cpp + 3) / 4;
uint32_t sifc_fmt;
@@ -428,6 +429,9 @@ NV50EXAUploadSIFC(const char *src, int src_pitch,
}
chan->flush_notify = NULL;
+
+ if (pdpix == pScreen->GetScreenPixmap(pScreen))
+ FIRE_RING(chan);
return TRUE;
}
diff --git a/src/nvc0_exa.c b/src/nvc0_exa.c
index 45647ce..85cb5d2 100644
--- a/src/nvc0_exa.c
+++ b/src/nvc0_exa.c
@@ -550,6 +550,7 @@ NVC0EXAUploadSIFC(const char *src, int src_pitch,
PixmapPtr pdpix, int x, int y, int w, int h, int cpp)
{
NVC0EXA_LOCALS(pdpix);
+ ScreenPtr pScreen = pdpix->drawable.pScreen;
int line_dwords = (w * cpp + 3) / 4;
uint32_t sifc_fmt;
@@ -608,6 +609,9 @@ NVC0EXAUploadSIFC(const char *src, int src_pitch,
}
chan->flush_notify = NULL;
+
+ if (pdpix == pScreen->GetScreenPixmap(pScreen))
+ FIRE_RING(chan);
return TRUE;
}
--
1.7.4.rc3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] exa: Flush (S)IFC to the frontbuffer immediately.
[not found] ` <1297103867-5718-1-git-send-email-madman2003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2011-02-07 18:38 ` Maarten Maathuis
0 siblings, 0 replies; 2+ messages in thread
From: Maarten Maathuis @ 2011-02-07 18:38 UTC (permalink / raw)
To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
The reason for NV50+ is obvious, but i'm not sure NV04-NV4X should be
included for consistency or not.
On Mon, Feb 7, 2011 at 7:37 PM, Maarten Maathuis <madman2003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> - NV50+: This avoids high latency while typing with core fonts for example.
>
> Signed-off-by: Maarten Maathuis <madman2003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> src/nv04_exa.c | 4 ++++
> src/nv50_exa.c | 4 ++++
> src/nvc0_exa.c | 4 ++++
> 3 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/src/nv04_exa.c b/src/nv04_exa.c
> index 267c7b5..2603bd4 100644
> --- a/src/nv04_exa.c
> +++ b/src/nv04_exa.c
> @@ -340,6 +340,7 @@ NV04EXAUploadIFC(ScrnInfoPtr pScrn, const char *src, int src_pitch,
> PixmapPtr pDst, int x, int y, int w, int h, int cpp)
> {
> NVPtr pNv = NVPTR(pScrn);
> + ScreenPtr pScreen = pDst->drawable.pScreen;
> struct nouveau_channel *chan = pNv->chan;
> struct nouveau_grobj *clip = pNv->NvClipRectangle;
> struct nouveau_grobj *ifc = pNv->NvImageFromCpu;
> @@ -413,6 +414,9 @@ NV04EXAUploadIFC(ScrnInfoPtr pScrn, const char *src, int src_pitch,
> }
>
> chan->flush_notify = NULL;
> +
> + if (pDst == pScreen->GetScreenPixmap(pScreen))
> + FIRE_RING(chan);
> return TRUE;
> }
>
> diff --git a/src/nv50_exa.c b/src/nv50_exa.c
> index e8ff5aa..85baa68 100644
> --- a/src/nv50_exa.c
> +++ b/src/nv50_exa.c
> @@ -372,6 +372,7 @@ NV50EXAUploadSIFC(const char *src, int src_pitch,
> PixmapPtr pdpix, int x, int y, int w, int h, int cpp)
> {
> NV50EXA_LOCALS(pdpix);
> + ScreenPtr pScreen = pdpix->drawable.pScreen;
> int line_dwords = (w * cpp + 3) / 4;
> uint32_t sifc_fmt;
>
> @@ -428,6 +429,9 @@ NV50EXAUploadSIFC(const char *src, int src_pitch,
> }
>
> chan->flush_notify = NULL;
> +
> + if (pdpix == pScreen->GetScreenPixmap(pScreen))
> + FIRE_RING(chan);
> return TRUE;
> }
>
> diff --git a/src/nvc0_exa.c b/src/nvc0_exa.c
> index 45647ce..85cb5d2 100644
> --- a/src/nvc0_exa.c
> +++ b/src/nvc0_exa.c
> @@ -550,6 +550,7 @@ NVC0EXAUploadSIFC(const char *src, int src_pitch,
> PixmapPtr pdpix, int x, int y, int w, int h, int cpp)
> {
> NVC0EXA_LOCALS(pdpix);
> + ScreenPtr pScreen = pdpix->drawable.pScreen;
> int line_dwords = (w * cpp + 3) / 4;
> uint32_t sifc_fmt;
>
> @@ -608,6 +609,9 @@ NVC0EXAUploadSIFC(const char *src, int src_pitch,
> }
>
> chan->flush_notify = NULL;
> +
> + if (pdpix == pScreen->GetScreenPixmap(pScreen))
> + FIRE_RING(chan);
> return TRUE;
> }
>
> --
> 1.7.4.rc3
>
>
--
Far away from the primal instinct, the song seems to fade away, the
river get wider between your thoughts and the things we do and say.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-02-07 18:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-07 18:37 [PATCH] exa: Flush (S)IFC to the frontbuffer immediately Maarten Maathuis
[not found] ` <1297103867-5718-1-git-send-email-madman2003-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-02-07 18:38 ` Maarten Maathuis
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.