Gamestudio Links
Zorro Links
Newest Posts
Get BMAP's filename...?
by Firoball
20 minutes 59 seconds ago
bone ang/pos
by 3run
Today at 15:41
Takeprofit and Stoploss
by sdelatorre
Today at 10:54
Save as .wmb
by Emre
Today at 05:57
Connors RSI implementation
by MatPed
Today at 00:37
multiple results graph in multi-asset scripts?
by SBGuy
Yesterday at 21:19
Verbose messages
by Sphin
Yesterday at 20:24
AUM Magazine
Latest Screens
Evonet Beta v1.0 : Online Project Development Template
Lake scene
Forgotten Tales - Demo version
RPG PARTY
Who's Online
13 registered (3run, JRA, alibaba, ChrstphFr, mig, AndrewAMD, MatPed, jyd, krial057, 1 invisible), 477 Guests and 6 Spiders online.
Key: Admin, Global Mod, Mod
Newest Members
bbn1982, selma, mbullied, Raisinbran, Grodt
17984 Registered Users
Topic Options
Rate This Topic
#469383 - 11/14/17 05:08 Restarting Post Processing for resolution change
jumpman Offline
Serious User

Registered: 04/17/02
Posts: 1170
Loc: ny
Hello, im working on a simple post processing shader. I can get the PP to work correctly until the resolution changes. Ive searched on the forum for how to restart the chain, some of which say just to resize the render target bmap. But ive only seen ptr_remove used to destroy the bmap, and bmap_createblack again. But if I do this, the texture memory gets used up, almost as if ptr_remove isnt removing anything. How do I restart this post processing without stacking memory?

the simple chain

Code:
BMAP* g_buffer_scene;

VIEW* camMix = { layer = 2; }


function start_PP ()
{
	
	
g_buffer_scene = bmap_createblack(screen_size.x, screen_size.y, 24);  //screen_size.x, screen_size.y

camera->bmap = g_buffer_scene;

//	VIEW *camMix = view_create ( 2 );

   camMix->material = post_blood_pixel;	//pp_test_mine;	

	camMix->flags |= PROCESS_TARGET | SHOW;
	

camera->stage = camMix;
	
}



The attempt to remove the chain and free memory:
Code:
bmap_purge(g_buffer_scene);
   ptr_remove(g_buffer_scene);
   
   ptr_remove(camMix->material);
	ptr_remove(camMix->bmap);
	ptr_remove(camMix);



But memory isnt freed when I try to remove the chain. I want to remove it first, then i can attempt to restart it.

I just want to reapply the PP after the resolution changes.
_________________________
A8 Pro 8.47

Top
#469414 - 11/15/17 12:14 Re: Restarting Post Processing for resolution change [Re: jumpman]
txesmi Offline
Serious User

Registered: 06/13/07
Posts: 1134
Loc: Hiporope and its pain
Hi,
I can't reproduce this issue in a blank level.

Code:
void resolutionChange () {
	camera->flags &= ~SHOW;
	camPP->flags &= ~SHOW;
	camera->stage = NULL;
	bmap_remove ( camera->bmap );
	camera->bmap = NULL;
	video_mode = video_switch ( video_mode+1, 32, 2 );
	if ( !video_mode )
		video_mode = video_switch ( 1, 32, 2 );
	// wait(1);
	camera->bmap = bmap_createblack ( screen_size.x, screen_size.y, 24 );
	camera->stage = camPP;
	camera->flags |= SHOW;
	camPP->flags |= SHOW;
}


Top
#469435 - 11/15/17 22:24 Re: Restarting Post Processing for resolution change [Re: txesmi]
jumpman Offline
Serious User

Registered: 04/17/02
Posts: 1170
Loc: ny
this works correctly! Thank you friend!

Though if I dont put a wait(-1); before and after the recreation, i get a DirectX error, cannot create texture unnamed. What is that?
_________________________
A8 Pro 8.47

Top
#469451 - 11/16/17 19:47 Re: Restarting Post Processing for resolution change [Re: jumpman]
txesmi Offline
Serious User

Registered: 06/13/07
Posts: 1134
Loc: Hiporope and its pain
I don't really know. I am sorry. I guess it has something to do with the try of the GPU to access to a deleted buffer but no idea why and when could it happen. A resolution change is conflictive because everything has to be rebuilt from scratch after resizing the device backbuffers. I would try to avoid it as much as possible. Have you got more cameras around? Has any entity or material a rendertarget linked for shading?

You might try to set a larger bmap_zbuffer from the very beginning so the rendering target is not resized, just its viewport... I hope wink


Top


Moderator:  Blink, Hummel, Superku 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de