profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/kvark/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

KhronosGroup/MoltenVK 3001

MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on iOS and macOS.

gfx-rs/wgpu 2686

Safe and portable GPU abstraction in Rust, implementing WebGPU API.

amethyst/specs 1941

Specs - Parallel ECS

gfx-rs/naga 583

Universal shader translation in Rust

brendanzab/gl-rs 566

An OpenGL function pointer loader for Rust

kvark/baryon 29

Fast prototyping 3D engine

jrmuizel/glsl-to-spirv 21

A glsl to spirv compiler

brendanzab/sax-rs 13

DEPRECATED - use https://github.com/netvl/rust-xml/ instead.

kvark/binary-space-partition 9

Abstract BSP tree in Rust

PullRequestReviewEvent

Pull request review commentgpuweb/gpuweb

wgsl: Add limits section, and "spurious" failure

 There are three kinds of errors, corresponding to the shader lifecycle:     and other information available to the `createShaderModule` API method.  * A <dfn export>pipeline-creation error</dfn>-    is an error feasibly detectable at [=pipeline creation=] time.+    is an error detectable at [=pipeline creation=] time.     Detection must rely only on the [SHORTNAME] program source text     and other information available to the particular pipeline creation API method.+    A complex shader program may cause pipeline creation to fail [=spuriously=].

It's really hard to see what other error codes are possible from CreateGraphicsPipelineState, specifically when WebGPU guarantees that all the expectations of this functions are fulfilled (e.g. not passing in garbage pointers):

Return value Type: HRESULT This method returns E_OUTOFMEMORY if there is insufficient memory to create the pipeline state object. See Direct3D 12 Return Codes for other possible return values.

Visiting the Direct3D 12 Return Codes doesn't help much either. E_NOTIMPL?

dneto0

comment created time in an hour

pull request commentgpuweb/gpuweb

wgsl: Add limits section, and "spurious" failure

Main question I had, and I don't think it was fully answered, was: how can we do it better than the user would?

dneto0

comment created time in 2 hours

PR merged gfx-rs/naga

When writing snapshots, reliably identify which writer has failed.

This implements @kvark's suggestion in his review of #1384.

+10 -1

3 comments

1 changed file

jimblandy

pr closed time in 2 hours

push eventgfx-rs/naga

Jim Blandy

commit sha 2e73e486570e62171058bbfe88a69f2de50997ad

When writing snapshots, reliably identify which writer has failed. (#1427)

view details

push time in 2 hours

PullRequestReviewEvent

delete branch kvark/wgpu

delete branch : deno-ci

delete time in 4 hours

push eventgfx-rs/wgpu

Dzmitry Malyshau

commit sha 96ed52f4a7469317968a03c92484a7135b6a1d70

Check Deno build on CI

view details

push time in 4 hours

PR merged gfx-rs/wgpu

Check Deno build on CI

Connections #1978 broke deno_webgpu without us noticing.

Description We may not want to run everything on each change, but we can at least make sure Deno still builds.

Testing Self-tested

+18 -0

1 comment

2 changed files

kvark

pr closed time in 4 hours

pull request commentgfx-rs/wgpu

Check Deno build on CI

It takes 3 minutes. I think this is useful to have.

kvark

comment created time in 4 hours

pull request commentgfx-rs/wgpu

Support zero-sized mappings

Weird, CTS fails on Windows but passes on macOS.

kvark

comment created time in 4 hours

PR opened gfx-rs/wgpu

Check Deno build on CI

Connections #1978 broke deno_webgpu without us noticing.

Description We may not want to run everything on each change, but we can at least make sure Deno still builds.

Testing Self-tested

+18 -0

0 comment

2 changed files

pr created time in 5 hours

create barnchkvark/wgpu

branch : deno-ci

created branch time in 5 hours

push eventkvark/wgpu

Connor Fitzgerald

commit sha ff8f258b950273520f1dddcfcfb02a415f74d9cc

Fix VK and GL renderdoc captures

view details

Connor Fitzgerald

commit sha 075b52ebfad7fb4d32bd29710875e046d61875ee

Merge pull request #1987 from cwfitzgerald/fix-renderdoc-captures-master

view details

Dzmitry Malyshau

commit sha 180e3e3576aa0fd73b847a39b46834756f094219

Fix write_texture for array textures

view details

Dzmitry Malyshau

commit sha 089294fc5145299c1f9f5d537ce9fdd019c4063c

Skip mismatched epochs in the remove_abandoned check

view details

Matt Lacey

commit sha cc8b00f1d4f95a9aae63c587384823de68f88909

Adds white background to main logo for better visibility on black backgrounds

view details

Dzmitry Malyshau

commit sha 13b374ef5b9bda85d105327d8e92f17e99ddfcca

Update the array layer limit to 256

view details

Devin Brite

commit sha dbfdbf4e3201e37a1e6c151f5a64130a0c897928

Move validation from `Device::create_texture_from_hal()` to `Device::create_texture()` (#2001) * Move validation from `Device::create_texture_from_hal()` to `Device::create_texture()` --- Users encountered a segfault upon creating a texture when mip_level_count was set to 0 with (at least) Vulkan. This is due to wgpu's validation taking place after the API's texture is created. This change moves wgpu's validation to before the API's texture is created, introducing a friendly error instead of a segfault. * Make `Device::create_texture_from_hal()` infallible * run cargo fmt

view details

Dzmitry Malyshau

commit sha a7aa72ba1c39effad3667acd53565b9e26bf17e0

Check for color target count in bundle creation

view details

João Capucho

commit sha 9bc59084926dc66a29bfffdc0a960d7cebbf2e62

Add method to create shader modules without runtime checks (#1978) * Add method to create shader modules without runtime checks * Use opaque struct to represent shader bound checks

view details

Dzmitry Malyshau

commit sha acd983ed5ee99a5fa00dbbb4edaf122d321119f7

Update matrix icons

view details

Dzmitry Malyshau

commit sha 84d1583e99994f02b7085f4d898d953187d7a95e

Support zero-sized mappings

view details

push time in 5 hours

Pull request review commentgfx-rs/wgpu

Support zero-sized mappings

 impl<A: HalApi> LifetimeTracker<A> {                     }                     _ => panic!("No pending mapping."),                 };-                let status = if mapping.range.start != mapping.range.end {++                let size = mapping.range.end - mapping.range.start;+                let host = mapping.op.host;+                let ptr_maybe = if size != 0 {                     log::debug!("Buffer {:?} map state -> Active", buffer_id);-                    let host = mapping.op.host;-                    let size = mapping.range.end - mapping.range.start;                     match super::map_buffer(raw, buffer, mapping.range.start, size, host) {-                        Ok(ptr) => {-                            buffer.map_state = resource::BufferMapState::Active {-                                ptr,-                                range: mapping.range.start..mapping.range.start + size,-                                host,-                            };-                            resource::BufferMapAsyncStatus::Success-                        }+                        Ok(ptr) => Some(ptr),                         Err(e) => {                             log::error!("Mapping failed {:?}", e);-                            resource::BufferMapAsyncStatus::Error+                            None                         }                     }                 } else {-                    resource::BufferMapAsyncStatus::Success+                    ptr::NonNull::new(self.empty_mapping.as_mut_ptr())

that's tricky indeed :/

kvark

comment created time in 5 hours

PullRequestReviewEvent

issue commentgpuweb/gpuweb

Add magic `_` identifier (and remove `ignore()`)

Ok, a, _ = blah(); is definitely far-fetched. I'd expect this look like let (a, _) = blah(); instead as more familiar.

jdashg

comment created time in 5 hours

Pull request review commentgpuweb/gpuweb

Сlarify rounding

 the following exceptions:         of NaNs and infinities. * Implementations may ignore the sign of a zero.     That is, a zero with a positive sign may behave like a zero a with a negative sign, and vice versa.-* No rounding mode is specified.+* Rounding mode is round-to-nearest even, but implementation may truncate results to zero.

ok, I was thinking about round() builtin, not general rounding. FYI, we can't talk about "hardware" directly in the spec.

munrocket

comment created time in 5 hours

PullRequestReviewEvent

issue commentgpuweb/gpuweb

Add magic `_` identifier (and remove `ignore()`)

How does it look like? Something like this?

[[group(1), binding(0)]]
var tex: texture_2d<f32>;

fn foo() {
  let _xx = tex;
}
jdashg

comment created time in 5 hours

pull request commentgpuweb/gpuweb

precise_math attribute on functions

@litherum it looks like MSL supports [[clang::optnone]] on functions - https://github.com/KhronosGroup/SPIRV-Cross/pull/1746 . We could consider it as a direct effect of [[precise_math]] in WGSL.

kvark

comment created time in 5 hours

Pull request review commentgfx-rs/wgpu

Support zero-sized mappings

 impl<A: HalApi> LifetimeTracker<A> {                     }                     _ => panic!("No pending mapping."),                 };-                let status = if mapping.range.start != mapping.range.end {++                let size = mapping.range.end - mapping.range.start;+                let host = mapping.op.host;+                let ptr_maybe = if size != 0 {                     log::debug!("Buffer {:?} map state -> Active", buffer_id);-                    let host = mapping.op.host;-                    let size = mapping.range.end - mapping.range.start;                     match super::map_buffer(raw, buffer, mapping.range.start, size, host) {-                        Ok(ptr) => {-                            buffer.map_state = resource::BufferMapState::Active {-                                ptr,-                                range: mapping.range.start..mapping.range.start + size,-                                host,-                            };-                            resource::BufferMapAsyncStatus::Success-                        }+                        Ok(ptr) => Some(ptr),                         Err(e) => {                             log::error!("Mapping failed {:?}", e);-                            resource::BufferMapAsyncStatus::Error+                            None                         }                     }                 } else {-                    resource::BufferMapAsyncStatus::Success+                    ptr::NonNull::new(self.empty_mapping.as_mut_ptr())

I don't think this is valid. A *mut u8 isn't holding [] alive, so the [] will die instantly, and the pointer becomes invalid.

kvark

comment created time in 6 hours

PullRequestReviewEvent
PullRequestReviewEvent

issue commentgpuweb/gpuweb

Add magic `_` identifier (and remove `ignore()`)

@ben-clayton are you talking about the case where resources are being forcibly used for the matter of deriving a pipeline layout? Please write down the example usage here for clarity.

jdashg

comment created time in 6 hours

Pull request review commentgpuweb/gpuweb

Replace clampDepth with disableDepthClip

 dictionary GPUPrimitiveState {     GPUFrontFace frontFace = "ccw";     GPUCullMode cullMode = "none"; -    // Enable depth clamping (requires "depth-clamping" feature)-    boolean clampDepth = false;+    // Requires "disable-depth-clip" feature.+    boolean disableDepthClip = false;

and then here we could use a proper enum DepthClipMode { "clip", "clamp" }

kainino0x

comment created time in 6 hours

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentgpuweb/gpuweb

Replace clampDepth with disableDepthClip

 allows additional usages of WebGPU that would have otherwise been invalid.  <script type=idl> enum GPUFeatureName {-    "depth-clamping",+    "disable-depth-clip",

I think this is a poor name for a feature. First, because features are naturally expected to "enable" more function, not disable it. How about "depth-clip-mode"?

kainino0x

comment created time in 6 hours