Arsène Pérard-Gayot
Arsène Pérard-Gayot
Currently, the material system is not quite physically correct. Take for instance the diffuse material: ```c bool lambertianBSDF(struct hitRecord *isect, struct color *attenuation, struct lightRay *scattered, sampler *sampler) { struct...
As it stands now, there's only one traversal algorithm. I'd like to implement the following algorithms: - A frustum-based ray traversal algorithm, - A aligned/oriented bounding-box intersection algorithm, - A...
The binning algorithm used in the current version of the library is not nearly as precise as it could be. Right now, it does evaluate the SAH by just cutting...
This branch introduces a simple set of operations on small vector types, in the spirit of GLSL. The following types are introduced: ``` vec2[T] vec3[T] vec4[T] mat2x2[T] mat2x3[T] mat2x4[T] mat3x2[T]...
Many tests for impala are broken because we currently print types such as `fn(i32) -> i32` as `fn(i32, fn(i32))`. The code that did the pretty printing previously is now commented...
The following code hangs on `master`. Compile with `impala -emit-thorin`. It works on `mem2reg`, so maybe backporting fixes will be enough. ```rust extern "C" { fn side_effect(&[u8]) -> (); fn...
Right now, there is the PE phase that does partial evaluation and lower2cff at the same time. This has some issues, as pointed out before with issue #93. However, even...
The explicit control flow in the match (and therefore also in the branch()) intrinsic functions will duplicate code when specialization: ```rust fn main(i: i32, j: i32) -> i32 { let...
The following code triggers the assertion (using impala and -emit-thorin): ```rust struct Blob { done: fn () -> bool } fn test(next_blob: Blob) -> () { let next = |exit|...