googlestadia / porque4k Goto Github PK
View Code? Open in Web Editor NEWLos arcoiris son mejores en 4K. #BlackLivesMatter
License: Apache License 2.0
Los arcoiris son mejores en 4K. #BlackLivesMatter
License: Apache License 2.0
Single displayed image, with either vertical or horizontal split merging two images (internal + native, as an example).
The split should be changeable via UI interactions (click-drag)
Right now, we just allocate 1 MiB per frame (soon to be 4 MiB) of CPU-visible GPU memory in order to push constants via dynamic uniform buffer. This number is totally fabricated. We should validate the actual usage, and pick an amount based on that like sane engineers.
With VK_AMD_mixed_attachment_samples, we would be able to get full depth resolution for our checkerboard rendering. We can then use that full-res depth to better inform our checkerboard resolve.
There are outstanding questions about how it interacts with VK_EXT_sample_locations. Using these two extensions together would be required, since the default 4X MSAA sample locations are not suitable for use with checkerboarding.
Would make it easier for contributors to figure out where they can plug in
In order to save some ALU, and more importantly, save register pressure, it would be great to use FP16 in some of the data-parallel friendly parts of the checkerboard resolve (velocity and color processing).
Reference notes here: https://gpuopen.com/first-steps-implementing-fp16/
The swapchain is created with VK_FORMAT_B8G8R8A8_UNORM in order to set the STORAGE image usage flag.
The internal renderpasses uses UNORM as well, but should be converted to SRGB, and then have the final compute composite handle the conversion to the correct color space.
Right now, we use add_custom_command to build shaders. However, add_custom_command doesn't care about dependencies triggering shader compiles (e.g. modifying a header).
I'm not entirely sure what the right solution is here. I was thinking of using add_custom_target, but that just builds all the time, which I don't want either. I don't want to just treat it as HLSL, because I can't control the DXC compiler, and that doesn't work for Ninja. Which maybe isn't a huge deal.
Right now we calculate color information for the reconstructed pixels, whether the pixels are moving or not. If the entire wave isn't moving, maybe we can just end the entire wave early and pass the previous results through.
Instead of hand-coding the binding indices, we should be grabbing the info from reflection. We'll have to some app-specific metadata (like this texture should bind to the 'NormalTexture' or whatever), but that's way more maintainable than what we have now
Alternatively, we could use a shared header for the shaders and Vulkan code
Right now we are using
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
To make sure the GGP VS generator works correctly.
But it should be
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS OFF)
Details here: chaoticbob/CMake#1
Right now, all we got it start/stop of the animation. There should be property control + manual manipulation.
Could be either Sponza, Breakfast room, Bistro, or Damaged Helmet
https://github.com/GPUOpen-LibrariesAndSDKs/Cauldron-Media
https://casual-effects.com/data/
Initial model will be Damaged Helmet
https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/DamagedHelmet
Right now, we follow this pattern in the app code:
VkDeviceCreateInfo device_ci = {
VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
};
To be more clear (and safe), we should do one of these two patterns instead.
VkDeviceCreateInfo device_ci = {
.stype = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
};
VkDeviceCreateInfo device_ci = {};
device_ci .stype = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
Ideally some set of common techniques that we could use to interact with the internal and target images
Possible techniques:
Ambient Occlusion
AA
Bloom
Blur
DOF
Tonemap
Grain
Would likely leverage that infrastructure for a temporal resolve for dynamic scaling
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.