• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
RPTD

ATI inital rendering delay up to multiple seconds

6 posts in this topic

This is a problem I'm facing since a long time and I could not find a solution for it. The situation is the following:

1) Create some textures with glTexImage2D fill with image data
2) Render a scene where not all objects are immediatly visible (culling)

Now the first time a bunch of previously not visible objects turn visible the frame update hangs up to multiple seconds depending the number of objects now rendered that didn't before. I narrowed down the problem to the textures. If an object is rendered with a texture that has not been used for rendering yet this delay happens. If I force a texture already loaded no such delay happens at all.

Thus on ATI for some reason the first time a texture is used for rendering an awful delay happens.

Has anybody an idea what could cause this delay? It doesn't show up on nVidia at all with the same code. Is there some call I have to make to force ATI to ready the texture for rendering even if the texture is not yet used? I really need a solution for this because random delays up to seconds during gameplay is just unacceptable.
0

Share this post


Link to post
Share on other sites
That's like magic... whenever I post here a question after weeks of looking for an answer I stumble across the solution soon after.

Figured out what causes the problem. I disabled mip mapping while using compression (hence GL_COMPRESSED_RGB_ARB respectivly GL_COMPRESSED_RGB_ARBA) and then the initial delay vanished. So the conclusion is that if a compression format is used with mip mapping ATI doesn't compress the data while using glTexImage2D but delays the compression of the data until the texture is rendered for the first time. With either compression disabled or mip mapping disabled the delay vanished. So you can't do both (compression and mip mapping) on ATI without running into the delay problem.
2

Share this post


Link to post
Share on other sites
[quote name='RPTD' timestamp='1332681110' post='4925103']
That's like magic... whenever I post here a question after weeks of looking for an answer I stumble across the solution soon after.

Figured out what causes the problem. I disabled mip mapping while using compression (hence GL_COMPRESSED_RGB_ARB respectivly GL_COMPRESSED_RGB_ARBA) and then the initial delay vanished. So the conclusion is that if a compression format is used with mip mapping ATI doesn't compress the data while using glTexImage2D but delays the compression of the data until the texture is rendered for the first time. With either compression disabled or mip mapping disabled the delay vanished. So you can't do both (compression and mip mapping) on ATI without running into the delay problem.
[/quote]

This is interesting as i had a similar problem.May i ask if there is a solution for doing descent mip mapping via software method ?
0

Share this post


Link to post
Share on other sites
I would recommend always performing the creation of mip-maps and the compression of your texture data at data-build time, instead of at run-time.
There are many libraries to help with this task, such as:
[url="http://code.google.com/p/nvidia-texture-tools/"]http://code.google.com/p/nvidia-texture-tools/[/url]
[url="http://code.google.com/p/libsquish/"]http://code.google.com/p/libsquish/[/url]
[url="http://developer.amd.com/tools/compress/Pages/default.aspx"]http://developer.amd.com/tools/compress/Pages/default.aspx[/url]
1

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1332739676' post='4925260']
I would recommend always performing the creation of mip-maps and the compression of your texture data at data-build time, instead of at run-time.
There are many libraries to help with this task, such as:
[url="http://code.google.com/p/nvidia-texture-tools/"]http://code.google.c...-texture-tools/[/url]
[url="http://code.google.com/p/libsquish/"]http://code.google.com/p/libsquish/[/url]
[url="http://developer.amd.com/tools/compress/Pages/default.aspx"]http://developer.amd...es/default.aspx[/url]
[/quote]

Thanks although it doesn't explain how to perform that particular task [img]http://public.gamedev.net//public/style_emoticons/default/rolleyes.gif[/img]
0

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1332739676' post='4925260']
I would recommend always performing the creation of mip-maps and the compression of your texture data at data-build time, instead of at run-time.
There are many libraries to help with this task, such as:
[url="http://code.google.com/p/nvidia-texture-tools/"]http://code.google.c...-texture-tools/[/url]
[url="http://code.google.com/p/libsquish/"]http://code.google.com/p/libsquish/[/url]
[url="http://developer.amd.com/tools/compress/Pages/default.aspx"]http://developer.amd...es/default.aspx[/url]
[/quote]
Figured that much out myself too. Looks like I have to do the compression software side. I had this plan anyways so that's not much of a bummer. Downloaded that libsquish already but could not yet put it to use. Coming soon.

@vNeeki:
Create all mip map levels in software either using your own software or some other software. Since it's down-sampling by 2 (hence 4 pixels into 1) you can use a simple box filter for that. Once done you can upload each level using glTexImage2D specifying 0, 1, ... , N as the first parameter to write the appropriate mip map level.
1

Share this post


Link to post
Share on other sites
[quote name='RPTD' timestamp='1332866809' post='4925732']
[quote name='Hodgman' timestamp='1332739676' post='4925260']
I would recommend always performing the creation of mip-maps and the compression of your texture data at data-build time, instead of at run-time.
There are many libraries to help with this task, such as:
[url="http://code.google.com/p/nvidia-texture-tools/"]http://code.google.c...-texture-tools/[/url]
[url="http://code.google.com/p/libsquish/"]http://code.google.com/p/libsquish/[/url]
[url="http://developer.amd.com/tools/compress/Pages/default.aspx"]http://developer.amd...es/default.aspx[/url]
[/quote]
Figured that much out myself too. Looks like I have to do the compression software side. I had this plan anyways so that's not much of a bummer. Downloaded that libsquish already but could not yet put it to use. Coming soon.

@vNeeki:
Create all mip map levels in software either using your own software or some other software. Since it's down-sampling by 2 (hence 4 pixels into 1) you can use a simple box filter for that. Once done you can upload each level using glTexImage2D specifying 0, 1, ... , N as the first parameter to write the appropriate mip map level.
[/quote]

Thanks. May i ask if you could recommend any descent library for the box filter mipmap generation ? All of my textures have POT dimensions (if that helps).
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0