Base closure pointer in layer is incorrect when using batched execute
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 38/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- cpp, linux
- Lĩnh vực
- compilers, computer-graphics
Hướng nghiên cứu
Bắt đầu với trường hợp kiểm thử tối thiểu được đính kèm, đặc biệt là test2.cpp, và tái hiện lỗi khi USE_BATCHED được bật và khi không được bật. Theo dõi process_bsdf_closure, MxLayerParams và phần xử lý layer closure của osl; được xem là hoàn tất khi lần chạy theo lô báo cáo diffuse closure là base và assertion hiện có không còn thất bại, trong khi đầu ra không theo lô vẫn chính xác.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
Base closure pointer in osl layer points to its parent layer closure when using batched execute while it should actually point to a diffuse closure.
void process_bsdf_closure(const ClosureColor* closure) {
const ClosureComponent* comp = closure->as_comp();
const MxLayerParams* srcparams = comp->as<MxLayerParams>();
assert(srcparams->base != closure);
Steps to Reproduce
Download the attached minimal sample and issue the following commands:
g++ -DUSE_BATCHED -mavx2 -mfma -mtune=skylake -mf16c -g test2.cpp -loslcomp -loslexec -loslnoise -loslquery -lOpenImageIO -lOpenImageIO_Util
./a.out
parsing mx layer closure
parsing generalized schlick closure
Error: base closure in mx layer points back to currently parsed closure
g++ -mavx2 -mfma -mtune=skylake -mf16c -g test2.cpp -loslcomp -loslexec -loslnoise -loslquery -lOpenImageIO -lOpenImageIO_Util
./a.out
parsing mx layer closure
parsing generalized schlick closure
parsing diffuse closure
<correct output, no problem!>
Here's .osl shader codes in the .zip:
shader layer_test(
color base_color = color(0.8, 0.8, 0.8),
color specular_tint = color(1.0),
float roughness = 0.5,
normal Tangent = normalize(dPdu),
output closure color BSDF = 0)
{
BSDF = base_color * diffuse(N);
color F0 = specular_tint;
color F90 = color(1.0);
BSDF = layer(generalized_schlick_bsdf(N, Tangent, color(1.0), color(0.0), roughness, roughness, F0, F90, 0.0, "ggx"),BSDF);
}
surface output_surface(closure color Surface = 0)
{
Ci = Surface;
}
Versions
- OSL branch/version: v1.13.8.0
- OS: linux 64-bit 5.10.0-18-amd64
- C++ compiler: g++ 10.2.1
- LLVM version: 11.0.1-2
- OIIO version: v2.5.4.0
- Ngôn ngữ chính
- C++
- Star
- 2.3k
- Fork
- 415
- Merge trung bình
- 2 ngày 14 giờ
- Pull request đã merge (30 ngày)
- 13
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của AcademySoftwareFoundation/OpenShadingLanguage
-
build / testing / port / CI
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
AcademySoftwareFoundation/OpenShadingLanguage#2148 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
AcademySoftwareFoundation/OpenShadingLanguage#2109 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 38/100
AcademySoftwareFoundation/OpenShadingLanguage#2175 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Tracesets handling proposalĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
AcademySoftwareFoundation/OpenShadingLanguage#2146 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
AcademySoftwareFoundation/OpenShadingLanguage#2135 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của AcademySoftwareFoundation/OpenShadingLanguage
Issue tương tự
-
Unconfirmed bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
luanti-org/luanti#17605 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
area: config area: firmware priority: P2 - medium size: S type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Mizithra/ActiveTerrain#16 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
grumpycoders/pcsx-redux#2171 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
bytedance/trae-agent#524 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày