🐉 Making Rust a first-class language and ecosystem for GPU code 🚧
imgui-rs/imgui-rs 1190
Rust bindings for Dear ImGui
gfx-rs/rspirv 332
Rust implementation of SPIR-V module processing functionalities
UI framework harvested from krryn project and updated slightly
Backups / storage of settings files
issue commentKhronosGroup/MoltenVK
Vulkan features supported by M1
So, is it safe to assume that raytracing pipelines and some other advanced features (like buffer pointers) that are present in Metal will not be available in MoltenVK for foreseeable future?
Afraid not. The problem is that Metal doesn't support writing raw GPU VAs to a buffer, then loading them in a shader, so we can't support VK_KHR_buffer_device_address
; and because the ray tracing extensions need BDAs, we can't yet support ray tracing, either.
comment created time in 12 hours
issue commentKhronosGroup/MoltenVK
Vulkan features supported by M1
Thank you for this.
So, is it safe to assume that raytracing pipelines and some other advanced features (like buffer pointers) that are present in Metal will not be available in MoltenVK for foreseeable future?
comment created time in 14 hours
fork matklad/sixtyfps
SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript.
fork in 17 hours
fork kornelski/fallible_collections
impl fallible collections in rust, quite as describe in RFC 2116
fork in 20 hours
created repositoryMeirBon/brush-ffi
FFI interface for the Rust library glyph-brush
created time in 20 hours
startedAsahiLinux/gpu
started time in a day
issue commentKhronosGroup/MoltenVK
Vulkan features supported by M1
That's because nobody has submitted anything to the Vulkan HW DB for it yet. It needs to be run on a Mac with an M1 chip; AFAIK, at least one enterprising dev is working on reverse engineering the M1 GPU so a Linux driver can be produced for it, but that's still in the early stages.
Here is a list of all known Vulkan features that MoltenVK supports on the M1:
- 1.0 Core
robustBufferAccess
(not really)fullDrawIndexUint32
imageCubeArray
independentBlend
tessellationShader
sampleRateShading
dualSrcBlend
multiDrawIndirect
drawIndirectFirstInstance
depthClamp
depthBiasClamp
fillModeNonSolid
(n.b. points mode is unsupported)largePoints
alphaToOne
multiViewport
samplerAnisotropy
textureCompressionETC2
textureCompressionASTC_LDR
textureCompressionBC
(yes, all of them)occlusionQueryPrecise
fragmentStoresAndAtomics
shaderImageGatherExtended
(n.b.ConstOffsets
doesn't work)shaderStorageImageExtendedFormats
shaderStorageImageReadWithoutFormat
shaderStorageImageWriteWithoutFormat
shaderUniformBufferArrayDynamicIndexing
shaderSampledImageArrayDynamicIndexing
shaderStorageBufferArrayDynamicIndexing
shaderClipDistance
shaderInt16
shaderResourceMinLod
inheritedQueries
VK_KHR_16bit_storage
(1.1 Core)storageBuffer16BitAccess
uniformAndStorageBuffer16BitAccess
storagePushConstant16
storageInputOutput16
VK_KHR_8bit_storage
(1.2 Core)storageBuffer8BitAccess
uniformAndStorageBuffer8BitAccess
storagePushConstant8
VK_KHR_float16_int8
(1.2 Core)shaderFloat16
shaderInt8
VK_KHR_multiview
(1.1 Core)multiview
VK_KHR_portability_subset
constantAlphaColorBlendFactor
events
imageViewFormatReinterpretation
imageViewFormatSwizzle
multisampleArrayImage
mutableComparisonSamplers
separateStencilMaskRef
shaderSampleRateInterpolation
(n.b. The functions actually worked at one point, but they seem to be broken now.)vertexAttributeAcccessBeyondStride
VK_KHR_sampler_ycbcr_conversion
(1.1 Core)samplerYcbcrConversion
VK_KHR_shader_draw_parameters
(1.1 Core)shaderDrawParaameters
VK_KHR_shader_subgroup_extended_types
(1.2 Core)shaderSubgroupExtendedTypes
VK_KHR_timeline_semaphore
(1.2 Core)timelineSemaphore
VK_KHR_uniform_buffer_standard_layout
(1.2 Core)uniformBufferStandardLayout
VK_KHR_variable_pointers
(1.1 Core)variablePointersStorageBuffer
variablePointers
VK_EXT_fragment_shader_interlock
fragmentShaderSampleInterlock
fragmentShaderPixelInterlock
VK_EXT_host_query_reset
(1.2 Core)hostQueryReset
VK_EXT_image_robustness
robustImageAccess
VK_EXT_inline_uniform_block
inlineUniformBlock
VK_EXT_private_data
privateData
VK_EXT_robustness2
robustImageAccess2
VK_EXT_scalar_block_layout
(1.2 Core)scalarBlockLayout
VK_EXT_subgroup_size_control
subgroupSizeControl
(n.b. the subgroup size cannot actually be set; this just confirms support for variable subgroup sizes)computeFullSubgroups
VK_EXT_texel_buffer_alignment
texelBufferAlignment
VK_EXT_texture_compression_astc_hdr
textureCompressionASTC_HDR
VK_EXT_vertex_attribute_divisor
vertexAttributeInstanceRateDivisor
vertexAttributeInstanceRateZeroDivisor
(n.b. indirect draws with non-zero base instances don't work correctly with this; I'm considering turning this off for that reason)
VK_EXT_shader_integer_functions2_INTEL
shaderIntegerFunctions2
We also advertise VK_EXT_descriptor_indexing
, but until argument buffer support is merged, we'll be out of spec, since the 500k minimum required by that extension needs argument buffers on Metal. But once that's merged, we should be able to support that fully.
comment created time in a day
startedsdleffler/sludge
started time in a day
issue openedKhronosGroup/MoltenVK
Vulkan features supported by M1
What Vulkan features are supported by M1?
vulkan.gpuinfo.org doesn't list M1.
created time in a day
issue openedKhronosGroup/MoltenVK
Can you add support for the VK_KHR_shader_non_semantic_info extension? This will also require support for the SPV_KHR_non_semantic_info extension as well. The shader based debug printf validation tests requires these extensions, and technically without them the behavior of debug printf is undefined.
created time in a day
created repositorymmp/rgb2spectrum
Cache for prebuilt rgb2spectrum tables (to speedup pbrt-v4 CI runs)
created time in a day
startedrgl-epfl/brdf-loader
started time in a day
startedmsiglreith/grr-gltf
started time in a day
push eventKhronosGroup/MoltenVK
commit sha 28c514d03ba44bf80c4e0179e2912ab0617c3491
Add strings for all current VkResult values.
commit sha 4a65c293c69b4761340a423e92f5e4bf4f804d2f
Make logging functions globally accessible to ease their use in debugging activities. Include MVKLogging.h in MVKEnvironment.h, and remove references elsewhere.
commit sha e1b3585413152ff3f217a7412c2f7c95ae68cdf9
Add MVK_APPLE_SILICON macro definition. Use MVK_APPLE_SILICON instead of MVK_IOS_OR_TVOS || MVK_MACOS_APPLE_SILICON or MVK_MACOS_APPLE_SILICON || MVK_IOS_OR_TVOS.
commit sha b87b91f1441c8d09000d6ba5a643c6aab302774f
Remove unused member variables. Remove MVKGPUCaptureScope::_queue. Remove MVKQueue::_nextMTLCmdBuffID.
commit sha 3ec61667a64f46e1599484f30a3b4bb332ea7671
Update MVKSmallVector constructors, and remove unnecessary or obsolete code. MVKSmallVector allow constructor to size with default values. Remove obsolete MVKVector, which was long ago replaced with MVKSmallVector. Remove unnecessary concrete implementations of template functions that are used only within a single compilation unit.
commit sha c757f3012ce42e4d7bd0db67377b46a4b70ad1cc
Merge pull request #1213 from billhollings/minor-updates Minor non-behavior-changing updates and clean-up
push time in 2 days
PR merged KhronosGroup/MoltenVK
This PR contains a few code-clean-up updates that should not affect behavior.
MVKSmallVector
allow constructor to size with default values.- Remove obsolete
MVKVector
, which was long ago replaced withMVKSmallVector
. - Remove unnecessary concrete implementations of template functions that are used only within a single compilation unit.
- Add strings for all current
VkResult
values. - Make logging functions globally accessible to ease their use in debugging activities.
- Add and use
MVK_APPLE_SILICON
macro definition. - Remove a few unused member variables.
pr closed time in 2 days
startedtommyettinger/Scroll-o-Sprites
started time in 2 days
PR opened EmbarkStudios/rust-gpu
This PR adds a #[gpu_only]
macro to spirv-std-macros
, which essentially expands to the following. Which we were doing a lot in the code already, and will only add more in the future.
fn foo() {
#[cfg(target_arch = "spriv")] {
// SPIR-V fn body.
}
#[cfg(not(target_arch = "spriv"))] {
unimplemented!()
}
}
pr created time in 2 days
startedT-head-Semi/aosp-riscv
started time in 2 days
startedkangvcar/InfoSpider
started time in 2 days
Pull request review commentKhronosGroup/MoltenVK
GitHub Actions: Update Xcode to 12.3
on: env: # See: https://github.com/actions/virtual-environments/tree/main/images/macos- XCODE_DEV_PATH: /Applications/Xcode_12.2.app/Contents/Developer+ XCODE_DEV_PATH: /Applications/Xcode_12.3.app/Contents/Developer
Great. Thanks for the education, and for your work on setting Actions up!
comment created time in 2 days
Pull request review commentKhronosGroup/MoltenVK
GitHub Actions: Update Xcode to 12.3
on: env: # See: https://github.com/actions/virtual-environments/tree/main/images/macos- XCODE_DEV_PATH: /Applications/Xcode_12.2.app/Contents/Developer+ XCODE_DEV_PATH: /Applications/Xcode_12.3.app/Contents/Developer
For future reference, you'll want to make sure that the GitHub Actions virtual environment image has been updated to include a new version of Xcode.
@billhollings:
At the moment, the macos-latest
image maps to macos-10.15
, and that image's list of available Xcode versions (and paths) can be found here: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md#xcode
At some point macos-latest
will map to macos-11.0
(the macos-11.0
image is currently in preview, and has more limited capacity available).
comment created time in 2 days
pull request commentKhronosGroup/MoltenVK
Minor non-behavior-changing updates and clean-up
@cdavis5e Specifically wanted another pair of eyes on use of MVK_APPLE_SILICON
.
comment created time in 2 days
startedmersinvald/aquamarine
started time in 2 days
startedrust-lang/mdBook
started time in 2 days
PR opened KhronosGroup/MoltenVK
This PR contains a few code-clean-up updates that should not affect behavior.
MVKSmallVector
allow constructor to size with default values.- Remove obsolete
MVKVector
, which was long ago replaced withMVKSmallVector
. - Remove unnecessary concrete implementations of template functions that are used only within a single compilation unit.
- Add strings for all current
VkResult
values. - Make logging functions globally accessible to ease their use in debugging activities.
- Add and use
MVK_APPLE_SILICON
macro definition. - Remove a few unused member variables.
pr created time in 2 days