Gamestudio Links
Zorro Links
Newest Posts
Can't go to FALSEGOTO:DOUBLE?
by Turrican
Today at 00:34
Chamferbox Lucky Pack, once a year chance, 90% OFF limited deals
by Chamferbox
Yesterday at 21:10
How detect 200 bars after trade was opened?
by Tuguldur717
Yesterday at 13:58
Data quality and accuracy of test results
by brax
Yesterday at 13:44
Can be changed the header in Zorro?
by tomaslolo
Yesterday at 12:12
Price difference between last tick and previous.
by JRA
Yesterday at 11:47
Zorro on Linux
by alb
02/21/18 20:47
AUM Magazine
Latest Screens
Forgotten Tales - Demo version
RPG PARTY
Triton Wing now available on Steam
AckCon'17: Lotter vs The World
Who's Online
17 registered (dmac, Hredot, Cheulmen, BlackJack, MatPed, Kartoffel, alibaba, AndrewAMD, 3 invisible), 475 Guests and 9 Spiders online.
Key: Admin, Global Mod, Mod
Newest Members
tomaslolo, dmac, alb, may, piddle61
17896 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: 1146
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: 1064
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: 1146
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: 1064
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 | resources | magazine | manual | support faq | bugs

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) 3dgamestudio.net