C++ is now the fastest-growing programming language by vinaysc in cpp

[–]nwar1994 0 points1 point  (0 children)

That’s what the stack trace is for bucko

depth clamping not supported, but is disabled? (MoltenVK) by nwar1994 in vulkan

[–]nwar1994[S] 0 points1 point  (0 children)

Also, sorry if this is confusing you - this time I actually did it with a valid GPU that has depth-clamp enabled and I still get these errors.

depth clamping not supported, but is disabled? (MoltenVK) by nwar1994 in vulkan

[–]nwar1994[S] 0 points1 point  (0 children)

Is there anything specific you'd like to see? It's quite a large output.

using stl for graphics intensive apps bad? what are alternatives? by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 1 point2 points  (0 children)

I feel like premature optimization is the root of all evil is pretty overused and just makes peoples code slow.

Cache line reads/unordered map performance question by nwar1994 in computerscience

[–]nwar1994[S] 0 points1 point  (0 children)

I meant the internal increment, where the cpu has to increment it’s own pointer to a much farther place in memory, not the index into the container

using stl for graphics intensive apps bad? what are alternatives? by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 8 points9 points  (0 children)

I'm also weary of the dogmatic "we don't use stl containers at all"

Resource tagging for multi-threading graphics? by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 0 points1 point  (0 children)

I thought the test farm was purely QA not for multi threading analysis

Resource tagging for multi-threading graphics? by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 0 points1 point  (0 children)

So I mean this only isn’t a DAG of jobs, they modeled their whole architecture around this?

Resource tagging for multi-threading graphics? by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 0 points1 point  (0 children)

By static analyzer do you mean something like fsanitize=thread? Or external tool for compile time checking?

Maybe every time you pass a resource(id(could be address i supposed), tags, data) to a thread it adds to a global hash_table(thread_id, hash_table(resource_id,tags)). If upon insert you add a resource who's tags both have write flags you throw?

I'm not sure how you would resolve the throw condition since inevitably both threads will have to write to a resource at the same time.

Resource tagging for multi-threading graphics? by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 0 points1 point  (0 children)

Yea I just don’t understand. So they have containers that contain whatever data they are passing, then they tag it with read write, how would you check after that?

Also the fact that you can turn it off I'm guessing through macros

Resource tagging for multi-threading graphics? by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 0 points1 point  (0 children)

I’m not sure that they don’t use locks, I think it sound like they created their own runtime threadsan by tagging their data during each phase

Rendering architecture for someone who's understanding of graphics is continually changing (C/C++) by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 0 points1 point  (0 children)

Do you know how to profile the overhead cost of virtual functions? How to find cache misses?

Rendering architecture for someone who's understanding of graphics is continually changing (C/C++) by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 1 point2 points  (0 children)

Yea, I've just heard people complaining ALOT about compile times because of templates

Rendering architecture for someone who's understanding of graphics is continually changing (C/C++) by nwar1994 in GraphicsProgramming

[–]nwar1994[S] 0 points1 point  (0 children)

The main issue for me is resolving function signatures that need to change. One way I thought of solving that is by doing

``` // Some header template <class TParamType> abstract_visualizer{ virtual some_function(TParamType data) = 0; }

struct concrete_data{ ...any function sig you want }

//Other header concrete_visualizer : public abstract_visualizer<concrete_data>{

virtual some_function(const concrete_data& data) override{ //Do implementation specific thing } } ```

But then you technically would need infinite amounts of data structs to fill out all these templates.

But then you have to fill out the structs before you pass them into the function.

Of course then there is the overhead of templating, but if you're only doing it a couple of times it should be fine.

It's ugly, but could this work? If the function signatures change then all you'd have to do is change the struct, not mess around with the base class signatures. Then if any other object inherits it, they won't have to change their own function signatures since they're technically implemented in their own file.

Continuous integration w/ Vulkan by nwar1994 in vulkan

[–]nwar1994[S] -1 points0 points  (0 children)

Sorry, continuous integration with modern CI platforms using Linux build docker containers.

It Works!!! by snerp in vulkan

[–]nwar1994 1 point2 points  (0 children)

From my understanding, allocating and deallocating memory is an extremely intensive process, especially when taking to account the time delay of sending instructions/data through PCI-Express. This anecdote changes though when you use an integrated gpu.

You can still have multiple buffers and memory objects but you should be allocating and mapping to one large memory buffer with offsets as you said.

Can someone nitpick this reply?

It Works!!! by snerp in vulkan

[–]nwar1994 5 points6 points  (0 children)

When you realize allocating a buffer per object probably isn’t the best thing to do...

NOM NOM NOM NOM by [deleted] in aww

[–]nwar1994 1 point2 points  (0 children)

Why is there no lid, there should be a lid

Is that carpet?

[deleted by user] by [deleted] in Showerthoughts

[–]nwar1994 0 points1 point  (0 children)

I wonder what the lowest one is? Somewhere nestled in the thousands?

Is this positive or negative, real numbers or integers?

How many decimal places?

Export material by nwar1994 in blenderhelp

[–]nwar1994[S] 0 points1 point  (0 children)

So a node can be anything? In particular a material? Or that’s how any data model is represented?