Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 26 Nov 2008
Offline Last Active Today, 08:08 AM

Topics I've Started

"Google Safe Browsing recently detected malware on www.gamedev.net"

16 September 2014 - 08:01 AM



I just noticed that when I try to access GameDev.net through a google search this page is displayed:




I don't know when this started because I usually use a bookmark to open GameDev.net and this page is only shown when using google search.


Edit: That page is being displayed in various pages inside GameDev.net, even without using google search. Since it doesn't always happen maybe it's related to ads?

Scaling on available memory

06 July 2014 - 04:47 PM



Do current games/engines scale on available memory?


On consoles the available memory is fixed, but on PC do games take advantage of variable amounts of memory or simply work with a fixed amount set by the dev and according to the settings chosen by the player?


For example, keeping more models/textures in memory to reduce streaming when the system has available memory.


There's also the problem of balancing performance, because even though there might be space for more particles (for example) the processing power must also be taken into account.

GPU bottlenecks and Sync Points

19 May 2014 - 09:02 AM



After reading a few presentations from past GDC about DX performance I'm a little confused:


1 - (From GDC 2012 slide 44) How is it possible to be vertex shading limited? Aren't ALU units shared between shader stages (in D3D11 hardware anyway)? So there shouldn't be any hardware resources waiting for the vertex shader to finish...


2 - Regarding CPU-GPU sync points, currently my engine uses the same buffer to draw almost every object (so it's Map()/Unmap() using DISCARD hundreds or thousands of times per frame, every frame, the same cbuffer). Is this crazy unsure.png ? Most samples do it this way, but they're samples...

Anyway I'll add an option in debug builds to detect sync points like suggested in the presentation.


3 - "Buffer Rename operation (MAP_DISCARD) after deallocation" (slide 9 from 1st link above) - What are these rename operations?



Managing instancing

07 May 2014 - 04:02 AM

Currently my engine only supports instancing in a few limited cases, and I'm trying to fix that by implementing a more generic system.
When do engines usually find objects that can be instanced? Dynamically every frame after culling? Or at a "higher-level" by keeping a list of objects that use the same model?
Currently my scene struct looks like this:

struct Scene
    uint             num_actors;
    InstanceData*    actors_instance_data;
    uint*            actors_node_handles; //handles of actors' scene graph node(used to get world matrix)
    Model**          actors_models;
    BoundingSphere** bounding_spheres;

I could do it every frame after culling, by sorting the actors by model and if two actors a and use the same model (actors_models[a] == actors_models[b]) then they can be instanced by copying actors_instance_data[a] and actors_instance_data[b] to a constant buffer.


Does this seem reasonable or should I go with a "higher level" option?



Instance data in Vertex Buffer vs CBuffer+SV_InstanceID

27 April 2014 - 06:42 PM

I'm wondering if there is any significant performance hit in doing instancing like this (slide 30) compared to the "traditional" way of using a different input layout and pass the instance data in the vertex shader?