Gamestudio Links
Zorro Links
Newest Posts
Windows permission issues
by HellThunder
Yesterday at 21:51
CSVToHistory.c
by Dalla
Yesterday at 20:42
Position Close not possible
by MatPed
Yesterday at 18:49
Options trading questions
by Zheka
Yesterday at 17:36
Published Gamestudio Games?
by jumpman
Yesterday at 08:05
New Zorro version 1.88
by DdlV
09/24/18 20:32
Possible to extend assetHistory with own source?
by jcl
09/24/18 16:32
AUM Magazine
Latest Screens
Worst Case Z
AckCon'18 - Lotter vs the World 2 - Preview Release
Evonet Beta v1.0 : Online Project Development Template
Lake scene
Who's Online
15 registered (Jason_Rogers, alibaba, dmac, AndrewAMD, HellThunder, StefanS, Dalla, jumpman, 3 invisible), 504 Guests and 3 Spiders online.
Key: Admin, Global Mod, Mod
Newest Members
cepturion, Mon3y, vincitytaymo, just, XJohnny_Hoffmann
18057 Registered Users
Topic Options
Rate This Topic
#469383 - 11/14/17 05:08 Restarting Post Processing for resolution change
jumpman Online
Serious User

Registered: 04/17/02
Posts: 1194
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: 1163
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 Online
Serious User

Registered: 04/17/02
Posts: 1194
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: 1163
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