If you sell software that requires your clients to upgrade their system-wide security stack, so they might not. If it is statically linked, no need for them to.
460 karma · joined February 1, 2015
If you sell software that requires your clients to upgrade their system-wide security stack, so they might not. If it is statically linked, no need for them to.
We ended up implementing more and more tooling outside the engine, and there comes a point where UE4 became a IO/Rendering system. We'd've been happier if the engine were modular in design from the get-go.
They are very difficult to use if the game play semantics are complicated and require lots of interaction with world state or world geometry. If you're making a common FPS, they are great.
But yeah, direct IO to the GPU would be great but that's not feasible right now.
Give me two different universes where cognition exists but where the fundamental constants differ. Would you expect the ability to perform syllogism would be fundamentally biased to reflect the constants which brought about their existence?
But to your credit it does sound that rui saved Google (vastly) more money than they ever paid him.
I also know a number of engineers who are deeply religious, perhaps encouraged by recognizing "design" in nature, seemingly requiring a designer.
In my conversations with these people, their faith, while socially speaking is Christian, the specifics have hardly anything to do with traditional or orthodox theology. It's, as I perceive this, the only acceptable social structure available to them to live out these deep feelings of beauty and harmony in community.
Mold is an order of magnitude faster.
Hardly a bait and switch 'extortion'.
On the BSD's I've used, LibreSSL is a standard kernel configuration option. I'll note on FreeBSD, LibreSSL lacks the in-kernel fast path, last I checked.
`It’s true that Buddhism, and particularly Zen Buddhism, teaches that we are perfect just as we are, we have merely forgotten our true nature.`
As someone who has studied Zen Buddhism for a few decades, you will be very hard pressed to find anyone practiced in it refer to the words 'true' and 'perfect' so casually.
True is only meaningful with respect to an abstract system of rules, and this extends likewise to perfection. You need an external metric to determine what is, and by the same token, is not, perfect.
Zen Buddhism teaches people how to experience the world independent of that part of your mind that is actively categorizing the world into true, false, imperfect, perfect, etc. To experience your own experience of life as directly as possible, without mediation through your linguistic centers or moral philosophies. Since we're programmers, one analogy would be to reduce all those needless abstractions in the call stack down to the essential turing-complete read/write add/sub and jump instructions.
So Alan is forcing an important point on the Yogi. You can only know or define enlightenment with respect to an abstract system of thought. Remove the abstraction, and there is a complete liberation. No meaningful way to form distinctions. "Doesn’t he see the Brahman everywhere, and in all people, all beings". All becomes one. There is no difference between the enlightened and the non-enlightened in the non-conceptual world. Which is the world that Zen teaches how to experience, if for no other reason than to reveal that it is possible, and provide a renewed perspective on the seemingly ordinary miracle of conscious life.
Rendering objects that 'we can't see' has been done for as long as shadow caster light sources have been around. Even though we cannot see the mesh directly, the light can, and the viewer can see the shadow. These indirections all play their role in the greater "rendering equation", and the specific solution depends on the constraints of the application and resources of the development team.
Some renderers have abandoned triangles altogether for signed distance fields, but this involves re-creating from scratch the entire art pipeline.
Use the GPU to decide what to render, and in a growing number of cases, will cull triangles in compute (software) instead of letting the fixed pipeline do it. The vertex shader feeds parameters to the fragment shader even if the triangle is culled (depth or backfacing), so with vertex counts climbing, there is a lot of dead time spent feeding fragment shaders that are never ran.
Render at a lower resolution and temporally upsample to a higher resolution.
Using low overhead apis that optimize command recording performance (DX12, Vulkan) and transfer / memory access.
Multithread all the things.
Obsess over data locality and compression.
You can visualize our team's findings here (and help me replace this site with something much cooler) https://trees.pgc.umn.edu/app
Our paper: https://www.nature.com/articles/s41586-020-2824-5
We are seeking someone with low level C/C++ experience.
Consider what is nice for compiler development but is not nice for software engineering.
My view is that undefined behavior is a trash fire and serious effort should be undertaken to fix the situation before it gets even more out of hand.
The parent comment said: >then have a data race, it's functionally equivalent to undefined behavior
This is a matter of interpretation but there is a categorical difference between "this read is undefined so the compiler will silently omit it" and "this read will read whatever value is in the CPU cache at this address, even if the cache is stale". The difference is a matter of undefined behavior from the language versus the application being in an undefined state.
For example, as mentioned in the article, Odin does not leverage LLVM's poison value optimizations, which are derived from optimizations exploiting undefined behavior.
Sure, some code is slowed. But can you point to a well known and well used algorithm whose runtime characteristics depend upon exploiting UB? If you code goes fast because it's doing undefined things the compiler strips away, that's a structural bug in the application, in my view.
Odin allows type inference at the declaration level `foo := 1` for example, and a few other places, largely from the constant system. 1 can be an integer, float, or even a matrix, given the larger context.
What I meant was implicit type conversion. Integers do not automatically cast as booleans in Odin, as an example.