Theory: the main reason they want to kill him is not to get rid of him but to instigate a violent reaction which they'll use as the excuse for a full-blown communist coup and executing their opposition.
I think spice exists on a scale that is usually fixed in childhood. My wife (asian) doesn't even blink at dumping habanero salsa on things. I eat the normal "picante" salsa here in central Mexico with no problem, ones that locals tend to avoid as super spicy. My wife couldn't handle Thai level spice when we visited Thailand and had to order the medium level of spice. It's all relative.
I came from the US to Mexico. It was a food downgrade, honestly. Real Mexican food is a lot blander than what you find in "Mexican" restaurants in the US, even the ones that pretend to be authentic.
The lack of flavor I can handle; it's the blood sausages and beans on toast that sounds terrible. (Also, who the fuck ruins their tea with milk?)
The spiciest I've had here is like a 4-star dish from a Seattle Thai restaurant. Most of it is in the 1 or 2 star range. All really mild stuff.
In Thailand I brushed my fork across a chili pepper and then lost the feeling on one side of my mouth from the spice... They don't play around over there.
You need to partition those buffers into 3 sections and cycle between them every frame. The glBufferSubData call will try to overwrite the data that's already in the buffer (obviously) except the fact that that data is still being used by the GPU for the previous frame, so the call will just block until the previous frame is done. You won't notice this when your render speed is much faster than your refresh rate, but it will utterly destroy performance when you start actually pushing a GPU even a little bit.
Compiler flags won't turn 90 fps into 3200 fps with any code that wasn't purposefully written to exploit weaknesses in compiler optimizations. 2400 cubes is 57,000 polys, which should get you at least 1000 fps on really old hardware, even if you were doing a bunch of matrix math on the cpu side for each of the 2400 cubes. I rebuild the entire procedural tree structure on each frame for ~25,000 trunk segments, including a bunch of quaternion math and trig functions, and still don't dip below locked 60fps on my Ryzen 1600/GF 950 potato.
But updating the same buffer(s) every frame and stalling the pipeline would easily bring the framerate to its knees.
The "procedural tree structure" in my code is literally for trees, like arboles, with leaves and acorns and such. It's just an example of a complex cpu-side algorithm that is running every frame.
The draw call itself to the gpu will be very fast in the grand scheme of things. It just adds some data to a list in the driver. It doesn't represent the rendering time, nor does rendering actually start during that call. You have to use gpu timers like http://www.lighthouse3d.com/tutorials/opengl-timer-query/ to see how long the drawing takes.
Basic rendering has roughly 3 steps: update a bunch of buffers, bind the shader, and issue draw commands. Binding the shader and issuing the draw commands are asynchronous; they merely add things into an internal command buffer in the driver (you do this explicitly in Vulkan). Updating buffers is the tricky part. You can't just write directly into GPU memory. The driver has to coordinate the writes so that there are no conflicts with ongoing asynchronous jobs, such as the previous frame which is still actually in progress on the GPU. If you try to update a buffer which is still being used by another render job (such as the previous frame), the driver will stall your cpu thread and wait until the gpu is finished with the buffer before doing the copy. This is called a pipeline stall and is only one of many ways of causing one. As such, any buffer which is updated every frame needs to cycle through three different gpu buffers so as to not stall rendering. Yes, three. You can realistically expect to have three frames in flight at various stages of progress at the same time. You can also partition one buffer into three sections and render from an offset, if you use the correct flags when creating the buffer and the correct functions for updating a region of it.
The proper OpenGL solution is to bind an array of all your textures once per frame and access them by index. Bindless textures can incur significant penalties on some hardware and driver combos. I ran into lots of performance voodoo trying to get it to work properly.
Underneath it all, the expensive thing is changing uniform values. Uniforms occupy a special section of cache in the GPU and swapping them out is costly. Vulkan exposes this directly with Descriptor Sets and lets you manually manage which parts are being changed and when. With OpenGL, you're at the mercy of the driver to maybe do something clever if you carefully abide by a bunch of unwritten rules and also the stars align. Hence "rebinding textures is expensive", though it should actually be "rebinding any uniforms will probably be expensive".
Neither side will make housing affordable, at least not on purpose. To do that you need the price of houses to drop by around 80%. Yeah, current homeowners will get rekt, but they weren't complaining when they were getting magical "appreciation" money and getting free inflation money in the form of their mortgage. House prices will come down when mortgage rates stay high, like 10%+, for several years at least. Artificially low rates are what caused the housing price inflation in the first place.
The 80's was nuts. Tons of very diverse platforms.
Nowadays you only need to target x86-64. There's so little difference between Windows and Linux now that a properly factored game can ship on both platforms with only a tiny fraction of specialized platform code.
I don't want to deal with pinhead managers, bitch HR cunts, or mandatory 60 hour weeks. I've met other devs much better than me who share the sentiment.
I once worked in the same building as and befriended an ex-Valve engine dev. A guy's whose name is semi-famous. He nearly died from the stress of the job. Everything you hear about shit working conditions is true and likely understated. You really don't want to work in AAA, and if you have the skills to do so you have the skills to make indie games on your own.
People who just want to sit around and get high all the time are scumbags who suck.
cut them out of my life
Without a second thought. They're going nowhere. You have limited time on this earth, and even more limited time while young and able. Getting high often as a young person is incredibly unwise.