if(info.bind_point>=0)
{
if(!buffer)
- buffer = new Buffer(UNIFORM_BUFFER);
+ {
+ buffer = new Buffer();
+
+#ifdef DEBUG
+ if(!debug_name.empty())
+ buffer->set_debug_name(debug_name);
+#endif
+ }
BufferBackedUniformBlock *bb_block = new BufferBackedUniformBlock(info.data_size);
block.block = bb_block;
prog_begin->masks.dirty = 0;
- /* If any blocks stored in the buffer were updated, bind the buffer here
- to avoid state thrashing. */
- if(buffered_blocks_updated && !ARB_direct_state_access)
- buffer->bind();
-
if(last_buffer_block!=old_last_block)
{
unsigned required_size = last_buffer_block->get_required_buffer_size();
if(buffer->get_size()>0)
{
delete buffer;
- buffer = new Buffer(UNIFORM_BUFFER);
+ buffer = new Buffer();
last_buffer_block->change_buffer(buffer);
+
+#ifdef DEBUG
+ if(!debug_name.empty())
+ buffer->set_debug_name(debug_name);
+#endif
}
buffer->storage(required_size);
i->block->apply(i->bind_point);
}
+void ProgramData::set_debug_name(const string &name)
+{
+#ifdef DEBUG
+ debug_name = name;
+ if(buffer)
+ buffer->set_debug_name(name);
+#else
+ (void)name;
+#endif
+}
+
ProgramData::TaggedUniform::TaggedUniform():
value(0)