glCopyNamedBufferSubData не работает - PullRequest
0 голосов
/ 13 июля 2020

У меня есть этот код GL:

    GLuint newId;
    gpu->glCreateBuffers(1, &newId);
    gpu->glNamedBufferStorage(newId, static_cast<GLsizei>(newCapacity), nullptr, GL_DYNAMIC_STORAGE_BIT);

    GLint s1, s2;
    gpu->glGetNamedBufferParameteriv(id_, GL_BUFFER_SIZE, &s1);
    gpu->glGetNamedBufferParameteriv(newId, GL_BUFFER_SIZE, &s2);
    qDebug() << "SZ" << s1 << s2;

    gpu->glGetNamedBufferParameteriv(id_, GL_BUFFER_MAPPED, &s1);
    gpu->glGetNamedBufferParameteriv(newId, GL_BUFFER_MAPPED, &s2);
    qDebug() << "BA" << s1 << s2;

    qDebug() << "CA" << capacity_ << newCapacity;

    gpu->glCopyNamedBufferSubData(id_, newId, 0, 0, static_cast<GLsizei>(capacity_));

И по какой-то причине я не понимаю, команда копирования не работает. Я получаю следующий результат:

SZ 8192 16384
BA 0 0
CA 8192 16384
QOpenGLDebugMessage("APISource", 2130, "glCopyNamedBufferSubData failed because a referenced or provided buffer range (depending on the operation) was: larger than the buffer's size; incorrectly intersected with another range; or was otherwise invalid (GL_INVALID_VALUE)", "HighSeverity", "ErrorType")

Есть идеи, что происходит? Я работаю над графическим процессором RX 5700.

РЕДАКТИРОВАТЬ: просто попробовал использовать glCopyBufferSubData, который работает.

...