File tree 2 files changed +10
-3
lines changed
servers/rendering/renderer_rd/storage_rd
2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change 56
56
57
57
#import < os/signpost.h>
58
58
59
+ // We have to undefine these macros because they are defined in NSObjCRuntime.h.
60
+ #undef MIN
61
+ #undef MAX
62
+
59
63
void MDCommandBuffer::begin () {
60
64
DEV_ASSERT (commandBuffer == nil );
61
65
commandBuffer = queue.commandBufferWithUnretainedReferences ;
764
768
[render.encoder setVertexBuffers: render.vertex_buffers.ptr ()
765
769
offsets: render.vertex_offsets.ptr ()
766
770
withRange: NSMakeRange (first, p_binding_count)];
771
+ render.dirty .clear_flag (RenderState::DIRTY_VERTEX);
767
772
} else {
768
773
render.dirty .set_flag (RenderState::DIRTY_VERTEX);
769
774
}
1082
1087
1083
1088
UniformSet const &set = p_shader->sets [index ];
1084
1089
1085
- for (uint32_t i = 0 ; i < uniforms.size (); i++) {
1090
+ for (uint32_t i = 0 ; i < MIN ( uniforms.size (), set. uniforms . size () ); i++) {
1086
1091
RDD::BoundUniform const &uniform = uniforms[i];
1087
1092
UniformInfo ui = set.uniforms [i];
1088
1093
Original file line number Diff line number Diff line change @@ -541,13 +541,15 @@ void ParticlesStorage::_particles_allocate_emission_buffer(Particles *particles)
541
541
542
542
void ParticlesStorage::_particles_ensure_unused_emission_buffer (Particles *particles) {
543
543
if (particles->unused_emission_storage_buffer .is_null ()) {
544
- particles->unused_emission_storage_buffer = RD::get_singleton ()->storage_buffer_create (sizeof (uint32_t ) * 4 );
544
+ // For rendering devices that do not support empty arrays (like C++),
545
+ // we need to size the buffer with at least 1 element.
546
+ particles->unused_emission_storage_buffer = RD::get_singleton ()->storage_buffer_create (sizeof (ParticleEmissionBuffer));
545
547
}
546
548
}
547
549
548
550
void ParticlesStorage::_particles_ensure_unused_trail_buffer (Particles *particles) {
549
551
if (particles->unused_trail_storage_buffer .is_null ()) {
550
- particles->unused_trail_storage_buffer = RD::get_singleton ()->storage_buffer_create (sizeof ( uint32_t ) * 4 );
552
+ particles->unused_trail_storage_buffer = RD::get_singleton ()->storage_buffer_create (16 * sizeof ( float )); // Size of mat4.
551
553
}
552
554
}
553
555
You can’t perform that action at this time.
0 commit comments