Lines Matching refs:buffer
309 glw::GLuint buffer = 0;
315 gl.createBuffers(1, &buffer);
318 (this->*UploadDataFunction)(buffer, parameter);
320 gl.bindBuffer(GL_ARRAY_BUFFER, buffer);
344 if (buffer)
346 gl.deleteBuffers(1, &buffer);
427 /** @brief CopyNamedBufferSubData data upload function (uses auxiliary buffer object).
431 * the auxiliary buffer object storage allocation
679 * @param [in] buffer ID of the buffer to be cleared.
687 void ClearTest::ClearNamedBuffer<false>(glw::GLuint buffer, glw::GLenum internalformat, glw::GLsizei size,
694 m_pClearNamedBufferData(buffer, internalformat, format, type, data);
702 * @param [in] buffer ID of the buffer to be cleared.
710 void ClearTest::ClearNamedBuffer<true>(glw::GLuint buffer, glw::GLenum internalformat, glw::GLsizei size,
716 m_pClearNamedBufferSubData(buffer, internalformat, 0, size, format, type, data);
792 the_log.append(". Cleared buffer data is equal to [");
867 glw::GLuint buffer = 0;
873 gl.createBuffers(1, &buffer);
876 m_pNamedBufferData(buffer, static_cast<glw::GLsizei>(count * sizeof(T)), NULL, GL_DYNAMIC_COPY);
879 ClearNamedBuffer<USE_SUB_DATA>(buffer, internalformat, static_cast<glw::GLsizei>(count * sizeof(T)), format,
882 gl.bindBuffer(GL_ARRAY_BUFFER, buffer);
907 if (buffer)
909 gl.deleteBuffers(1, &buffer);
1168 glw::GLuint buffer = 0;
1182 gl.createBuffers(1, &buffer);
1186 m_pNamedBufferData(buffer, s_reference_size, s_reference, GL_DYNAMIC_COPY);
1189 /* Mapping with new named buffer map function. */
1190 glw::GLuint* data = (glw::GLuint*)m_pMapNamedBuffer(buffer, GL_READ_ONLY);
1197 << tcu::TestLog::Message << "glMapNamedBuffer returned NULL pointer, but buffer's data was expected."
1217 /* Unmapping with new named buffer unmap function. */
1218 if (GL_TRUE != m_pUnmapNamedBuffer(buffer))
1225 << "glUnmapNamedBuffer called on mapped buffer has returned GL_FALSE, but GL_TRUE was expected."
1238 if (buffer)
1240 gl.deleteBuffers(1, &buffer);
1242 buffer = false;
1312 glw::GLuint buffer = 0;
1326 gl.createBuffers(1, &buffer);
1330 m_pNamedBufferData(buffer, s_reference_size, s_reference, GL_DYNAMIC_COPY);
1333 /* Mapping with new named buffer map function. */
1334 glw::GLuint* data = (glw::GLuint*)m_pMapNamedBuffer(buffer, GL_READ_WRITE);
1341 << tcu::TestLog::Message << "glMapNamedBuffer returned NULL pointer, but buffer's data was expected."
1367 /* Unmapping with new named buffer unmap function. */
1368 if (GL_TRUE != m_pUnmapNamedBuffer(buffer))
1375 << "glUnmapNamedBuffer called on mapped buffer has returned GL_FALSE, but GL_TRUE was expected."
1382 data = (glw::GLuint*)m_pMapNamedBuffer(buffer, GL_READ_WRITE);
1390 << "glMapNamedBuffer returned NULL pointer, but buffer's data was expected."
1401 /* Unmapping with new named buffer unmap function. */
1402 if (GL_TRUE != m_pUnmapNamedBuffer(buffer))
1409 << "glUnmapNamedBuffer called on mapped buffer has returned GL_FALSE, but GL_TRUE was expected."
1423 if (buffer)
1425 gl.deleteBuffers(1, &buffer);
1427 buffer = false;
1500 glw::GLuint buffer = 0;
1514 gl.createBuffers(1, &buffer);
1518 m_pNamedBufferData(buffer, s_reference_size, NULL, GL_DYNAMIC_COPY);
1521 /* Mapping with new named buffer map function. */
1522 glw::GLuint* data = (glw::GLuint*)m_pMapNamedBuffer(buffer, GL_WRITE_ONLY);
1529 << tcu::TestLog::Message << "glMapNamedBuffer returned NULL pointer, but buffer's data was expected."
1540 /* Unmapping with new named buffer unmap function. */
1541 if (GL_TRUE != m_pUnmapNamedBuffer(buffer))
1548 << "glUnmapNamedBuffer called on mapped buffer has returned GL_FALSE, but GL_TRUE was expected."
1554 gl.bindBuffer(GL_ARRAY_BUFFER, buffer);
1588 if (buffer)
1590 gl.deleteBuffers(1, &buffer);
1592 buffer = false;
1665 glw::GLuint buffer = 0;
1687 gl.createBuffers(1, &buffer);
1691 m_pNamedBufferStorage(buffer, s_reference_size, s_reference, access_flags[i]);
1694 /* Mapping with first half of named buffer. */
1695 glw::GLuint* data = (glw::GLuint*)m_pMapNamedBufferRange(buffer, 0, s_reference_size / 2, access_flags[i]);
1701 /* Unmapping with new named buffer unmap function. */
1702 m_pUnmapNamedBuffer(buffer);
1705 /* Mapping with second half of named buffer. */
1706 data = (glw::GLuint*)m_pMapNamedBufferRange(buffer, s_reference_size / 2, s_reference_size / 2,
1713 /* Unmapping with new named buffer unmap function. */
1714 m_pUnmapNamedBuffer(buffer);
1718 if (buffer)
1720 gl.deleteBuffers(1, &buffer);
1722 buffer = 0;
1733 if (buffer)
1735 gl.deleteBuffers(1, &buffer);
1737 buffer = 0;
1779 << length << " returned NULL pointer, but buffer's data was expected." << tcu::TestLog::EndMessage;
1859 glw::GLuint buffer = 0;
1894 gl.createBuffers(1, &buffer);
1898 m_pNamedBufferStorage(buffer, s_reference_size, DE_NULL, access_flags[i].creation);
1901 /* Mapping with first half of named buffer. */
1903 (glw::GLuint*)m_pMapNamedBufferRange(buffer, 0, s_reference_size / 2, access_flags[i].first_mapping);
1906 /* Write to mapped buffer. */
1917 m_pFlushMappedNamedBufferRange(buffer, 0, s_reference_size / 2);
1922 /* Unmapping with new named buffer unmap function. */
1923 m_pUnmapNamedBuffer(buffer);
1927 /* Mapping with second half of named buffer. */
1928 data = (glw::GLuint*)m_pMapNamedBufferRange(buffer, s_reference_size / 2, s_reference_size / 2,
1932 /* Write to mapped buffer. */
1943 m_pFlushMappedNamedBufferRange(buffer, 0, s_reference_size / 2);
1948 /* Unmapping with new named buffer unmap function. */
1949 m_pUnmapNamedBuffer(buffer);
1953 /* Check that previous mappings correctly filled buffer with reference data. */
1954 is_ok &= CompareWithReference(buffer, access_flags[i].first_mapping | access_flags[i].second_mapping);
1957 if (buffer)
1959 gl.deleteBuffers(1, &buffer);
1961 buffer = 0;
1972 if (buffer)
1974 gl.deleteBuffers(1, &buffer);
1976 buffer = 0;
2003 /** @brief Compare buffer's content with the reference values (s_reference) and log possible failure.
2005 * @param [in] buffer Buffer to be tested.
2010 bool MapRangeWriteBitTest::CompareWithReference(glw::GLuint buffer, glw::GLbitfield access_flag)
2015 /* Map buffer with legacy API. */
2016 gl.bindBuffer(GL_ARRAY_BUFFER, buffer);
2057 << " failed to fill the buffer with reference data." << tcu::TestLog::EndMessage;
2066 /* Unmap buffer. */
2126 glw::GLuint buffer = 0;
2139 gl.createBuffers(1, &buffer);
2143 m_pNamedBufferData(buffer, s_reference_size, s_reference, GL_DYNAMIC_COPY);
2146 /* Mapping with new named buffer map function. */
2148 m_pGetNamedBufferSubData(buffer, 0, s_reference_size / 2, data);
2151 m_pGetNamedBufferSubData(buffer, s_reference_size / 2, s_reference_size / 2, &data[s_reference_count / 2]);
2176 if (buffer)
2178 gl.deleteBuffers(1, &buffer);
2180 buffer = false;
2272 glw::GLuint buffer = 0;
2288 gl.createBuffers(1, &buffer);
2314 m_pGetNamedBufferParameteriv(buffer, test_values[i].pname, &data);
2327 m_pGetNamedBufferParameteri64v(buffer, test_values[i].pname, &data);
2339 m_pGetNamedBufferPointerv(buffer, GL_BUFFER_MAP_POINTER, &data);
2354 if (buffer)
2356 gl.deleteBuffers(1, &buffer);
2358 buffer = 0;
2606 * buffer is not the name of an existing buffer object.
2613 * any part of the specified range of the buffer object is mapped with
2632 glw::GLuint buffer = 0;
2638 gl.createBuffers(1, &buffer);
2641 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data,
2645 /* Test invalid buffer name error behavior. */
2647 /* Prepare for invalid buffer name error behavior verification. */
2657 " if buffer is not the name of an existing buffer object.");
2681 m_pClearNamedBufferData(buffer, invalid_internal_format, GL_RED, GL_UNSIGNED_BYTE, &unused_data);
2692 /* Test of mapped buffer clear error behavior verification (glMapNamedBuffer version). */
2694 (void)(glw::GLbyte*) m_pMapNamedBuffer(buffer, GL_READ_ONLY);
2697 m_pClearNamedBufferData(buffer, GL_R8, GL_RED, GL_UNSIGNED_BYTE, &unused_data);
2700 " if any part of the specified range of the buffer"
2704 m_pUnmapNamedBuffer(buffer);
2708 /* Test of mapped buffer clear error behavior verification (glMapNamedBufferRange version). */
2710 (void)(glw::GLbyte*) m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT);
2713 m_pClearNamedBufferData(buffer, GL_R8, GL_RED, GL_UNSIGNED_BYTE, &unused_data);
2716 " if any part of the specified range of the buffer"
2720 m_pUnmapNamedBuffer(buffer);
2724 /* Test of persistently mapped buffer clear error with behavior verification (glMapNamedBufferRange version). */
2727 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT | GL_MAP_PERSISTENT_BIT);
2730 m_pClearNamedBufferData(buffer, GL_R8, GL_RED, GL_UNSIGNED_BYTE, &unused_data);
2733 " if any part of the specified range of the buffer"
2737 m_pUnmapNamedBuffer(buffer);
2761 m_pClearNamedBufferData(buffer, GL_R8, invalid_format, GL_UNSIGNED_BYTE, &unused_data);
2791 m_pClearNamedBufferData(buffer, GL_R8, GL_RED, invalid_type, &unused_data);
2810 if (buffer)
2812 gl.deleteBuffers(1, &buffer);
2814 buffer = 0;
2828 * if buffer is not the name of an existing buffer object.
2843 * of BUFFER_SIZE for the buffer object.
2846 * if any part of the specified range of the buffer object is mapped with
2865 glw::GLuint buffer = 0;
2871 gl.createBuffers(1, &buffer);
2874 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data,
2878 /* Test invalid buffer name error behavior. */
2880 /* Prepare for invalid buffer name error behavior verification. */
2891 " if buffer is not the name of an existing buffer object.");
2915 m_pClearNamedBufferData(buffer, invalid_internal_format, GL_RGBA, GL_UNSIGNED_BYTE, &unused_data);
2929 m_pClearNamedBufferSubData(buffer, GL_RGBA8, sizeof(unused_data[0]), sizeof(unused_data), GL_RGBA,
2939 m_pClearNamedBufferSubData(buffer, GL_RGBA8, 0, sizeof(unused_data) - sizeof(unused_data[0]), GL_RGBA,
2950 m_pClearNamedBufferSubData(buffer, GL_R8, -1, sizeof(unused_data), GL_RGBA, GL_UNSIGNED_BYTE, &unused_data);
2958 m_pClearNamedBufferSubData(buffer, GL_R8, 0, -((glw::GLsizei)sizeof(unused_data)), GL_RGBA, GL_UNSIGNED_BYTE,
2967 m_pClearNamedBufferSubData(buffer, GL_R8, 0, 2 * sizeof(unused_data), GL_RGBA, GL_UNSIGNED_BYTE,
2972 " if offset+size is greater than the value of BUFFER_SIZE for the specified buffer object.");
2975 /* Test of mapped buffer clear error behavior verification (glMapNamedBuffer version). */
2977 (void)(glw::GLbyte*) m_pMapNamedBuffer(buffer, GL_READ_ONLY);
2980 m_pClearNamedBufferSubData(buffer, GL_R8, 0, sizeof(unused_data), GL_RGBA, GL_UNSIGNED_BYTE, &unused_data);
2983 " if any part of the specified range of the buffer"
2987 m_pUnmapNamedBuffer(buffer);
2991 /* Test of mapped buffer clear error behavior verification (glMapNamedBufferRange version). */
2993 (void)(glw::GLbyte*) m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT);
2996 m_pClearNamedBufferSubData(buffer, GL_R8, 0, sizeof(unused_data), GL_RGBA, GL_UNSIGNED_BYTE, &unused_data);
2999 " if any part of the specified range of the buffer"
3003 m_pUnmapNamedBuffer(buffer);
3007 /* Test of persistently mapped buffer clear error with behavior verification (glMapNamedBufferRange version). */
3010 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT | GL_MAP_PERSISTENT_BIT);
3013 m_pClearNamedBufferSubData(buffer, GL_R8, 0, sizeof(unused_data), GL_RGBA, GL_UNSIGNED_BYTE, &unused_data);
3016 " if any part of the specified range of the buffer"
3020 m_pUnmapNamedBuffer(buffer);
3044 m_pClearNamedBufferSubData(buffer, GL_R8, 0, sizeof(unused_data), invalid_format, GL_UNSIGNED_BYTE,
3075 m_pClearNamedBufferSubData(buffer, GL_R8, 0, sizeof(unused_data), GL_RGBA, invalid_type, &unused_data);
3094 if (buffer)
3096 gl.deleteBuffers(1, &buffer);
3098 buffer = 0;
3112 * or writeBuffer is not the name of an existing buffer object.
3116 * greater than the size of the source buffer object (its value of
3118 * destination buffer object.
3121 * source and destination are the same buffer object, and the ranges
3125 * either the source or destination buffer object is mapped with
3162 /* Test invalid buffer name error behavior. */
3164 /* Prepare for invalid buffer name error behavior verification. */
3174 " if readBuffer is not the name of an existing buffer object.");
3179 " if writeBuffer is not the name of an existing buffer object.");
3212 " if size is greater than the size of the source buffer object.");
3221 " if readOffset+size is greater than the size of the source buffer object.");
3230 " if writeOffset+size is greater than the size of the source buffer object.");
3233 /* Test same buffer overlapping error behavior. */
3239 " if the source and destination are the same buffer object, and the ranges"
3243 /* Test of mapped read buffer copy error behavior verification (glMapNamedBuffer version). */
3251 " if the source buffer object is mapped with MapBuffer.");
3257 /* Test of mapped write buffer copy error behavior verification (glMapNamedBuffer version). */
3265 " if the destination buffer object is mapped with MapBuffer.");
3271 /* Test of mapped read buffer copy error behavior verification (glMapNamedBufferRange version). */
3279 " if the source buffer object is mapped with MapBuffer.");
3285 /* Test of mapped write buffer copy error behavior verification (glMapNamedBufferRange version). */
3293 " if the destination buffer object is mapped with MapBuffer.");
3299 /* Test of persistently mapped read buffer copy error with behavior verification. */
3308 " if the source buffer object is mapped using "
3316 /* Test of persistently mapped write buffer copy error with behavior verification. */
3326 " if the destination buffer object is mapped using "
3377 glw::GLuint buffer = 0;
3379 gl.createBuffers(-1, &buffer);
3384 if (buffer)
3386 gl.deleteBuffers(1, &buffer);
3399 * if buffer is not the name of an existing buffer object.
3406 * if the buffer object is not mapped, or is mapped without the
3421 glw::GLuint buffer = 0;
3427 gl.createBuffers(1, &buffer);
3430 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data, GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT);
3433 /* Test invalid buffer name flush error behavior. */
3435 /* Prepare for invalid buffer name error behavior verification. */
3445 " if buffer is not the name of an existing buffer object.");
3451 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_WRITE_BIT | GL_MAP_FLUSH_EXPLICIT_BIT);
3454 m_pFlushMappedNamedBufferRange(buffer, -1, 1);
3458 m_pUnmapNamedBuffer(buffer);
3465 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_WRITE_BIT | GL_MAP_FLUSH_EXPLICIT_BIT);
3468 m_pFlushMappedNamedBufferRange(buffer, 0, -1);
3472 m_pUnmapNamedBuffer(buffer);
3478 (void)(glw::GLbyte*) m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data) / 2,
3482 m_pFlushMappedNamedBufferRange(buffer, 0, sizeof(unused_data));
3487 m_pUnmapNamedBuffer(buffer);
3494 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_WRITE_BIT | GL_MAP_FLUSH_EXPLICIT_BIT);
3497 m_pFlushMappedNamedBufferRange(buffer, 1, sizeof(unused_data));
3502 m_pUnmapNamedBuffer(buffer);
3506 /* Test not mapped buffer flush error behavior. */
3508 m_pFlushMappedNamedBufferRange(buffer, 0, sizeof(unused_data));
3511 " if the buffer object is not mapped.");
3514 /* Test buffer flush without the MAP_FLUSH_EXPLICIT_BIT error behavior. */
3516 (void)(glw::GLbyte*) m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_WRITE_BIT);
3519 m_pFlushMappedNamedBufferRange(buffer, 0, sizeof(unused_data));
3522 " if the buffer is mapped without the MAP_FLUSH_EXPLICIT_BIT flag.");
3524 m_pUnmapNamedBuffer(buffer);
3534 if (buffer)
3536 gl.deleteBuffers(1, &buffer);
3538 buffer = 0;
3553 * buffer is not the name of an existing buffer object.
3556 * pname is not one of the buffer object parameter names: BUFFER_ACCESS,
3573 glw::GLuint buffer = 0;
3579 gl.createBuffers(1, &buffer);
3582 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data, GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT);
3585 /* Test invalid buffer name in GetNamedBufferParameteriv function error behavior. */
3587 /* Prepare for invalid buffer name error behavior verification. */
3599 " if buffer is not the name of an existing buffer object.");
3602 /* Test invalid buffer name in GetNamedBufferParameteri64v function error behavior. */
3604 /* Prepare for invalid buffer name error behavior verification. */
3616 " if buffer is not the name of an existing buffer object.");
3639 m_pGetNamedBufferParameteriv(buffer, invalid_parameter, &value);
3642 " if pname is not one of the buffer object parameter names: BUFFER_ACCESS,"
3668 m_pGetNamedBufferParameteri64v(buffer, invalid_parameter, &value);
3671 " if pname is not one of the buffer object parameter names: BUFFER_ACCESS,"
3683 if (buffer)
3685 gl.deleteBuffers(1, &buffer);
3687 buffer = 0;
3701 * if buffer is not the name of an existing buffer object.
3715 glw::GLuint buffer = 0;
3721 gl.createBuffers(1, &buffer);
3724 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data, GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT);
3727 /* Test invalid buffer name in GetNamedBufferPointerv function error behavior. */
3729 /* Prepare for invalid buffer name error behavior verification. */
3741 " if buffer is not the name of an existing buffer object.");
3750 if (buffer)
3752 gl.deleteBuffers(1, &buffer);
3754 buffer = 0;
3768 * buffer is not the name of an existing buffer object.
3772 * BUFFER_SIZE for the buffer object.
3775 * the buffer object is mapped with MapBufferRange or MapBuffer, unless it
3791 glw::GLuint buffer = 0;
3797 gl.createBuffers(1, &buffer);
3800 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data, GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT);
3803 /* Test invalid buffer name in pGetNamedBufferSubData function error behavior. */
3805 /* Prepare for invalid buffer name error behavior verification. */
3818 " if buffer is not the name of an existing buffer object.");
3827 m_pGetNamedBufferSubData(buffer, -1, sizeof(unused_data_query), unused_data_query);
3838 m_pGetNamedBufferSubData(buffer, 0, -1, unused_data_query);
3849 m_pGetNamedBufferSubData(buffer, 0, 2 * sizeof(unused_data_query), unused_data_query);
3852 " if size is greater than the value of BUFFER_SIZE for the buffer object.");
3861 m_pGetNamedBufferSubData(buffer, sizeof(unused_data_query) / 2, sizeof(unused_data_query),
3866 " if offset+size is greater than the value of BUFFER_SIZE for the buffer object.");
3875 m_pGetNamedBufferSubData(buffer, sizeof(unused_data_query) + 1, 0, unused_data_query);
3878 " if offset is greater than the value of BUFFER_SIZE for the buffer object.");
3881 /* Test mapped buffer query error behavior. */
3887 (void)(glw::GLbyte*) m_pMapNamedBuffer(buffer, GL_WRITE_ONLY);
3890 m_pGetNamedBufferSubData(buffer, 0, sizeof(unused_data_query), unused_data_query);
3893 " if the buffer object is mapped with MapBufferRange.");
3895 m_pUnmapNamedBuffer(buffer);
3899 /* Test mapped buffer query error behavior. */
3905 (void)(glw::GLbyte*) m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_WRITE_BIT);
3908 m_pGetNamedBufferSubData(buffer, 0, sizeof(unused_data_query), unused_data_query);
3911 " if the buffer object is mapped with MapBufferRange.");
3913 m_pUnmapNamedBuffer(buffer);
3917 /* Test persistently mapped buffer query behavior. */
3924 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT);
3927 m_pGetNamedBufferSubData(buffer, 0, sizeof(unused_data_query), unused_data_query);
3931 " if the buffer object is mapped with MapBufferRange with GL_MAP_PERSISTENT_BIT flag.");
3933 m_pUnmapNamedBuffer(buffer);
3943 if (buffer)
3945 gl.deleteBuffers(1, &buffer);
3947 buffer = 0;
3960 * Check that INVALID_OPERATION is generated by MapNamedBuffer if buffer is
3961 * not the name of an existing buffer object.
3967 * buffer object is in a mapped state.
3981 glw::GLuint buffer = 0;
3987 gl.createBuffers(1, &buffer);
3990 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data, GL_MAP_READ_BIT | GL_MAP_PERSISTENT_BIT);
3993 /* Test invalid buffer name error behavior. */
3995 /* Prepare for invalid buffer name error behavior verification. */
4005 " if buffer is not the name of an existing buffer object.");
4023 glw::GLbyte* mapped_data = (glw::GLbyte*)m_pMapNamedBuffer(buffer, invalid_access_flags);
4031 m_pUnmapNamedBuffer(buffer);
4037 /* Test mapping of mapped buffer error behavior. */
4039 (void)(glw::GLbyte*) m_pMapNamedBuffer(buffer, GL_READ_ONLY);
4042 glw::GLbyte* subsequent_mapped_data = (glw::GLbyte*)m_pMapNamedBuffer(buffer, GL_READ_ONLY);
4045 " if the buffer object is in a mapped state.");
4047 m_pUnmapNamedBuffer(buffer);
4054 << "glMapNamedBuffer called on mapped buffer returned non-NULL pointer when error shall occure."
4068 if (buffer)
4070 gl.deleteBuffers(1, &buffer);
4072 buffer = 0;
4086 * buffer is not the name of an existing buffer object.
4090 * BUFFER_SIZE for the buffer object, or if access has any bits set other
4096 * - The buffer object is already in a mapped state.
4103 * buffer's storage flags.
4117 glw::GLuint buffer = 0;
4124 gl.createBuffers(1, &buffer);
4127 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data,
4131 /* Test invalid buffer name error behavior. */
4133 /* Prepare for invalid buffer name error behavior verification. */
4143 " if buffer is not the name of an existing buffer object.");
4148 glw::GLvoid* mapped_data = m_pMapNamedBufferRange(buffer, -1, sizeof(unused_data), GL_MAP_READ_BIT);
4155 m_pUnmapNamedBuffer(buffer);
4163 glw::GLvoid* mapped_data = m_pMapNamedBufferRange(buffer, 0, -1, GL_MAP_READ_BIT);
4170 m_pUnmapNamedBuffer(buffer);
4178 glw::GLvoid* mapped_data = m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data) * 2, GL_MAP_READ_BIT);
4182 " for the buffer object, or if access has any bits set other"
4188 m_pUnmapNamedBuffer(buffer);
4197 m_pMapNamedBufferRange(buffer, sizeof(unused_data) / 2, sizeof(unused_data), GL_MAP_READ_BIT);
4201 " for the buffer object, or if access has any bits set other"
4207 m_pUnmapNamedBuffer(buffer);
4215 glw::GLvoid* mapped_data = m_pMapNamedBufferRange(buffer, 0, 0, GL_MAP_READ_BIT);
4222 m_pUnmapNamedBuffer(buffer);
4228 /* Test mapping of mapped buffer error behavior. */
4230 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT);
4234 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT);
4237 " if the buffer object is in a mapped state.");
4239 m_pUnmapNamedBuffer(buffer);
4246 << "glMapNamedBufferRange called on mapped buffer returned non-NULL pointer when error shall "
4257 glw::GLvoid* mapped_data = m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), 0);
4265 m_pUnmapNamedBuffer(buffer);
4285 glw::GLvoid* mapped_data = m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data),
4294 m_pUnmapNamedBuffer(buffer);
4304 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT | GL_MAP_FLUSH_EXPLICIT_BIT);
4312 m_pUnmapNamedBuffer(buffer);
4318 /* Test incompatible buffer flag error behavior. */
4325 " if MAP_READ_BIT is set, but the same bit is not included in the buffer's storage flags.",
4326 " if MAP_WRITE_BIT is set, but the same bit is not included in the buffer's storage flags.",
4327 " if MAP_PERSISTENT_BIT is set, but the same bit is not included in the buffer's storage flags.",
4328 " if MAP_COHERENT_BIT is set, but the same bit is not included in the buffer's storage flags."
4334 /* Create buffer. */
4350 m_pUnmapNamedBuffer(buffer);
4355 /* Releasing buffer. */
4371 if (buffer)
4373 gl.deleteBuffers(1, &buffer);
4375 buffer = 0;
4395 * Check that INVALID_OPERATION is generated by NamedBufferData if buffer
4396 * is not the name of an existing buffer object.
4406 * BUFFER_IMMUTABLE_STORAGE flag of the buffer object is TRUE.
4420 glw::GLuint buffer = 0;
4428 gl.createBuffers(1, &buffer);
4437 /* Test invalid buffer name error behavior. */
4439 /* Prepare for invalid buffer name error behavior verification. */
4449 " if buffer is not the name of an existing buffer object.");
4468 m_pNamedBufferData(buffer, sizeof(unused_data), unused_data, invalid_usage);
4478 m_pNamedBufferData(buffer, -1, unused_data, GL_DYNAMIC_COPY);
4483 /* Test immutable buffer error behavior. */
4488 " if the BUFFER_IMMUTABLE_STORAGE flag of the buffer object is TRUE.");
4497 if (buffer)
4499 gl.deleteBuffers(1, &buffer);
4501 buffer = 0;
4534 * buffer is not the name of an existing buffer object.
4563 glw::GLuint buffer = 0;
4569 /* Test invalid buffer name error behavior. */
4571 /* Prepare for invalid buffer name error behavior verification. */
4581 " if buffer is not the name of an existing buffer object.");
4587 gl.createBuffers(1, &buffer);
4591 m_pNamedBufferStorage(buffer, -1, unused_data, GL_DYNAMIC_COPY);
4596 m_pNamedBufferStorage(buffer, 0, unused_data, GL_DYNAMIC_COPY);
4601 gl.deleteBuffers(1, &buffer);
4603 buffer = 0;
4642 gl.createBuffers(1, &buffer);
4646 m_pNamedBufferStorage(buffer, sizeof(unused_data), unused_data, possibly_invalid_bit);
4654 gl.deleteBuffers(1, &buffer);
4656 buffer = 0;
4666 gl.createBuffers(1, &buffer);
4670 m_pNamedBufferStorage(buffer, sizeof(unused_data), unused_data, GL_MAP_PERSISTENT_BIT);
4677 gl.deleteBuffers(1, &buffer);
4679 buffer = 0;
4687 gl.createBuffers(1, &buffer);
4691 m_pNamedBufferStorage(buffer, sizeof(unused_data), unused_data,
4699 gl.deleteBuffers(1, &buffer);
4701 buffer = 0;
4712 if (buffer)
4714 gl.deleteBuffers(1, &buffer);
4716 buffer = 0;
4742 * buffer is not the name of an existing buffer object.
4746 * BUFFER_SIZE for the specified buffer object.
4749 * part of the specified range of the buffer object is mapped with
4754 * value of the BUFFER_IMMUTABLE_STORAGE flag of the buffer object is TRUE
4755 * and the value of BUFFER_STORAGE_FLAGS for the buffer object does not
4770 glw::GLuint buffer = 0;
4777 gl.createBuffers(1, &buffer);
4780 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data,
4790 /* Test invalid buffer name error behavior. */
4792 /* Prepare for invalid buffer name error behavior verification. */
4802 " if buffer is not the name of an existing buffer object.");
4808 m_pNamedBufferSubData(buffer, -1, sizeof(unused_data), &unused_data);
4816 m_pNamedBufferSubData(buffer, 0, -1, &unused_data);
4824 m_pNamedBufferSubData(buffer, 0, sizeof(unused_data) * 2, &unused_data);
4828 " if offset+size is greater than the value of BUFFER_SIZE for the specified buffer object.");
4834 m_pNamedBufferSubData(buffer, sizeof(unused_data) / 2, sizeof(unused_data), &unused_data);
4838 " if offset+size is greater than the value of BUFFER_SIZE for the specified buffer object.");
4841 /* Test of mapped buffer subdata error behavior verification (with glMapBuffer). */
4843 (void)(glw::GLbyte*) m_pMapNamedBuffer(buffer, GL_READ_ONLY);
4846 m_pNamedBufferSubData(buffer, 0, sizeof(unused_data), &unused_data);
4849 " if any part of the specified range of the buffer"
4853 m_pUnmapNamedBuffer(buffer);
4857 /* Test of mapped buffer subdata error behavior verification (with glMapBufferRange). */
4859 (void)(glw::GLbyte*) m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT);
4862 m_pNamedBufferSubData(buffer, 0, sizeof(unused_data), &unused_data);
4865 " if any part of the specified range of the buffer"
4869 m_pUnmapNamedBuffer(buffer);
4873 /* Test of persistently mapped buffer clear error with behavior verification. */
4876 m_pMapNamedBufferRange(buffer, 0, sizeof(unused_data), GL_MAP_READ_BIT | GL_MAP_PERSISTENT_BIT);
4879 m_pNamedBufferSubData(buffer, 0, sizeof(unused_data), &unused_data);
4882 " if any part of the specified range of the buffer"
4886 m_pUnmapNamedBuffer(buffer);
4890 /* Test DYNAMIC_STORAGE_BIT bit off immutable buffer not set error behavior. */
4896 " if the value of the BUFFER_IMMUTABLE_STORAGE flag of the buffer object is TRUE"
4897 " and the value of BUFFER_STORAGE_FLAGS for the buffer object does not"
4901 /* Test DYNAMIC_STORAGE_BIT bit off immutable buffer set no error behavior. */
4904 m_pNamedBufferSubData(buffer, 0, sizeof(unused_data), &unused_data);
4907 " if the value of the BUFFER_IMMUTABLE_STORAGE flag of the buffer object is TRUE"
4908 " and the value of BUFFER_STORAGE_FLAGS for the buffer object"
4918 if (buffer)
4920 gl.deleteBuffers(1, &buffer);
4922 buffer = 0;
4929 buffer = 0;
4942 * Check that INVALID_OPERATION is generated by UnmapNamedBuffer if buffer
4943 * is not the name of an existing buffer object.
4946 * buffer object is not in a mapped state.
4960 glw::GLuint buffer = 0;
4966 gl.createBuffers(1, &buffer);
4969 m_pNamedBufferStorage(buffer, sizeof(unused_data), &unused_data,
4973 /* Test invalid buffer name error behavior. */
4975 /* Prepare for invalid buffer name error behavior verification. */
4985 " if buffer is not the name of an existing buffer object.");
4988 /* Test not mapped buffer error behavior verification. */
4990 m_pUnmapNamedBuffer(buffer);
4993 " if the buffer object is not in a mapped state.");
5002 if (buffer)
5004 gl.deleteBuffers(1, &buffer);
5006 buffer = 0;
5050 }; //!< Initial data to be uploaded for the input buffer.
5054 }; //!< Initial data to be uploaded for the output buffer.
5058 }; //!< Expected result which shall be read from output buffer.
5361 /** Prepare input buffer in the way described in test specification (see class comment). */
5416 /* Write to mapped buffer. */
5438 /* Setup buffer as input for vertex shader. */
5542 /** Prepare output buffer in the way described in test specification (see class comment). */
5621 /** @brief Check that input buffer is immutable using GetNamedBufferParameteriv function. */
5647 << "Input buffer storage is unexpectedly mutable."
5667 /** @brief Check that output buffer size using GetNamedBufferParameteri64v function. */
5692 m_context.getTestContext().getLog() << tcu::TestLog::Message << "Output buffer size is " << size