cuốn sách gpt4 ai đã làm

Cảnh báo hiệu suất đường dẫn pixel: Quá trình truyền pixel được đồng bộ hóa với kết xuất 3D

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 00:32:54 36 4
mua khóa gpt4 Nike

Tôi đang tải dữ liệu hình ảnh lên kết cấu GL không đồng bộ .

Trong đầu ra gỡ lỗi, tôi nhận được những cảnh báo này trong quá trình kết xuất:

Nguồn:OpenGL,loại: Khác, id: 131185, mức độ nghiêm trọng: Thông báo
Thông báo: Thông tin chi tiết về bộ đệm: Đối tượng bộ đệm 1 (được liên kết với GL_PIXEL_UNPACK_BUFFER_ARB, gợi ý sử dụng là GL_DYNAMIC_DRAW) đã được ánh xạ WRITE_ONLY trong bộ nhớ HEAP HỆ THỐNG (nhanh). Nguồn:OpenGL,loại: Hiệu suất, id: 131154, mức độ nghiêm trọng: Trung bình Thông báo: Pixel- cảnh báo hiệu suất đường dẫn: Truyền pixel được đồng bộ hóa với kết xuất 3D.

Trong trường hợp của tôi, tôi không thấy bất kỳ lỗi nào khi sử dụng PBO hoặc bất kỳ điều gì sai trái. Vì vậy, câu hỏi đặt ra là liệu những cảnh báo này có thể được loại bỏ một cách an toàn hay tôi thực sự đã làm sai điều gì đó.

Đó là một phần mã của tôi:

    // bắt đầu sao chép pixel vào PBO từ RAM:
mPBOs[mCurrentPBO].Bind(GL_PIXEL_UNPACK_BUFFER);

const uint32_t buffSize = pipe->GetBufferSize();
GLubyte* ptr = (GLubyte*)mPBOs[mCurrentPBO].MapRange(0, buffSize, GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT);
nếu(ptr)
{
memcpy(ptr, pipe->GetBuffer(), buffSize);
mPBOs[mCurrentPBO].Unmap();
}

// sao chép pixel từ một PBO khác đã đầy (ngoại trừ khung hình đầu tiên vào kết cấu //
mPBOs[1 - mCurrentPBO].Bind(GL_PIXEL_UNPACK_BUFFER);
// mCopyTex được liên kết với mCopyFBO dưới dạng tệp đính kèm
glTextureSubImage2D(mCopyTex->GetHandle(), 0, 0, 0, mClientSize.x, mClientSize.y,
GL_RGBA, GL_UNSIGNED_BYTE, 0);

mCurrentPBO = 1 - mCurrentPBO;

Sau đó, tôi ghi kết quả vào bộ đệm khung mặc định. Không có kết xuất hình học hoặc bất cứ thứ gì tương tự.

  glBlitNamedFramebuffer(
mCopyFBO,
0,//id FBO mặc định
0,
0,
mViewportSize.x,
mViewportSize.y,
0,
0,
mViewportSize.x,
mViewportSize.y,
GL_COLOR_BUFFER_BIT,
GL_LINEAR);

Chạy trên card đồ họa NVIDIA GTX 960.

câu trả lời hay nhất

Cảnh báo hiệu suất này dành riêng cho nividia và nhằm mục đích gợi ý cho bạn biết rằng bạn sẽ không sử dụng hàng đợi truyền phần cứng riêng biệt, điều này không có gì đáng ngạc nhiên vì bạn đang sử dụng mô hình bối cảnh GL đơn luồng, đơn luồng để hiển thị (tại ít nhất là nơi bạn blit) và chuyển giao.

Nhìn thấy bài thuyết trình nvidia nàyMột số chi tiết về cách nvidia xử lý vấn đề này. Cảnh báo cụ thể này cũng được giải thích ở trang 22. Lưu ý rằng cảnh báo này không có nghĩa là quá trình chuyển tiền của bạn không đồng bộ.Nó vẫn hoàn toàn không đồng bộ với luồng CPU. Đối với các lệnh kết xuất trong cùng một hàng đợi lệnh, nó sẽ chỉ được xử lý đồng bộ trên GPU và bạn không sử dụng công cụ sao chép không đồng bộ, công cụ này có thể thực hiện các bản sao này độc lập với các lệnh kết xuất trong một hàng đợi lệnh riêng.

Tôi không thể thấy bất kỳ cách sử dụng PBO sai nào trong trường hợp của mình hoặc bất kỳ lỗi nào. Vì vậy, câu hỏi đặt ra là liệu những cảnh báo này có an toàn để loại bỏ hay không, hay tôi thực sự đang làm sai.

Bạn không gặp vấn đề gì khi sử dụng PBO.

Không rõ liệu ứng dụng cụ thể của bạn có được hưởng lợi từ việc sử dụng sơ đồ chi tiết hơn về các hàng đợi truyền riêng biệt hay không.

Về c++ - Cảnh báo hiệu suất đường dẫn pixel: Truyền pixel được đồng bộ hóa với hiển thị 3D, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/49368575/

36 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress