Gamestudio Links
Zorro Links
Newest Posts
OptimialF values in .fac file mostly zero
by SBGuy
6 minutes 52 seconds ago
wanted to share my working player/camera control action C++ app
by rayp
Today at 14:37
Votes for future features
by AndrewAMD
Today at 14:06
Transaction Cost
by jcl
Today at 09:42
Indicator RSI
by jcl
Today at 09:36
Is it possible to do Trade Mode without live brokerage account?
by AndrewAMD
Yesterday at 20:36
MED (or any tool) - change base frame / pose of frame 0 ?
by rayp
Yesterday at 17:55
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
14 registered (SBGuy, kvm, cepturion, alibaba, Mio, AndrewAMD, ChrstphFr, 20BN, 2 invisible), 465 Guests and 4 Spiders online.
Key: Admin, Global Mod, Mod
Newest Members
Mio, thewalruss, jiffdbf, jgtrader, Chefmac
18081 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: 1199
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: 1164
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: 1199
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: 1164
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