Page 1 of 1

Using frame buffer as a texture

Posted: Mon Oct 22, 2007 7:08 am
by MaikeruDev
I want use frame buffer as a texture for sprite (lower left corner of screen), but I noticed funny GS behavior:

Image

Screenshot is made in 3rd loop.

It also happens when I'm doing:
- local to local transmision of actual frame buffer in other place of GS memory
- local to host and after host to local in other place of GS mem.

I've tested 2nd method because I want to develop few 2D effects that modifies frame buffer (eg. blur, water effect, fire :) )

How to achieve exactly one copy of frame buffer and use it on the same frame?

EDIT:
Hmm... I forgot say what i'm really drawing on the one loop, so here it is:
- Full screen white sprite as background
- 2 triangles
- Sprite with copied actual frame buffer

Posted: Mon Oct 22, 2007 9:59 pm
by ooPo
I don't really see a problem, it looks fine to me - what should I be looking for?

Posted: Mon Oct 22, 2007 11:56 pm
by MaikeruDev
It should look like this:
Image

Posted: Tue Oct 23, 2007 12:08 am
by jbit
Well it looks like you're writing into the place you're reading from..... In which case this is the correct output....
The black box in the bottom left I guess is because of cache issues (it looks to be able a page big ;)

Posted: Tue Oct 23, 2007 12:21 am
by MaikeruDev
Probarly You have right. It looks like I was reading from previous cached frame buffer - not actual. This black box is frame buffer of ps2link. In first iteration theres only two triangles with big black box.

Thanks

Posted: Wed Nov 07, 2007 8:55 am
by MaikeruDev
After few days of testing other stuff, I found what was wrong. I just used previous buffer instead of actual, so it wasn't caching or something like that - it was my mistake :).

I wrote something like motion-blur, here is a screenshot:
Image

What my code do in one frame:
- draws white background
- draws one big triangle
- downloads actual frame buffer
- modifies buffer in RAM
- upload buffer from RAM to GS mem in place of actual frame buffer
- draws another triangle (a small one with alpha)
- download actual frame buffer
- save bitmap