You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-30 16:26:50 +00:00
fix for two incorrectly bound texture formats
This commit is contained in:
@@ -351,8 +351,7 @@ void RasterizerSceneRD::sdfgi_update(RID p_render_buffers, RID p_environment, co
|
|||||||
|
|
||||||
RD::TextureFormat tf_probe_average = tf_probes;
|
RD::TextureFormat tf_probe_average = tf_probes;
|
||||||
tf_probe_average.format = RD::DATA_FORMAT_R32G32B32A32_SINT; //signed integer because SH are signed
|
tf_probe_average.format = RD::DATA_FORMAT_R32G32B32A32_SINT; //signed integer because SH are signed
|
||||||
tf_probe_average.type = RD::TEXTURE_TYPE_2D_ARRAY;
|
tf_probe_average.type = RD::TEXTURE_TYPE_2D;
|
||||||
tf_probe_average.array_layers = 1;
|
|
||||||
|
|
||||||
sdfgi->lightprobe_history_scroll = RD::get_singleton()->texture_create(tf_probe_history, RD::TextureView());
|
sdfgi->lightprobe_history_scroll = RD::get_singleton()->texture_create(tf_probe_history, RD::TextureView());
|
||||||
sdfgi->lightprobe_average_scroll = RD::get_singleton()->texture_create(tf_probe_average, RD::TextureView());
|
sdfgi->lightprobe_average_scroll = RD::get_singleton()->texture_create(tf_probe_average, RD::TextureView());
|
||||||
@@ -8218,7 +8217,7 @@ RasterizerSceneRD::RasterizerSceneRD(RasterizerStorageRD *p_storage) {
|
|||||||
RD::Uniform u;
|
RD::Uniform u;
|
||||||
u.type = RD::UNIFORM_TYPE_TEXTURE;
|
u.type = RD::UNIFORM_TYPE_TEXTURE;
|
||||||
u.binding = 0;
|
u.binding = 0;
|
||||||
u.ids.push_back(storage->texture_rd_get_default(RasterizerStorageRD::DEFAULT_RD_TEXTURE_3D_WHITE));
|
u.ids.push_back(storage->texture_rd_get_default(RasterizerStorageRD::DEFAULT_RD_TEXTURE_CUBEMAP_WHITE));
|
||||||
uniforms.push_back(u);
|
uniforms.push_back(u);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7755,6 +7755,34 @@ RasterizerStorageRD::RasterizerStorageRD() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{ //create default cubemap white array
|
||||||
|
|
||||||
|
RD::TextureFormat tformat;
|
||||||
|
tformat.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
|
||||||
|
tformat.width = 4;
|
||||||
|
tformat.height = 4;
|
||||||
|
tformat.array_layers = 6;
|
||||||
|
tformat.usage_bits = RD::TEXTURE_USAGE_SAMPLING_BIT | RD::TEXTURE_USAGE_CAN_UPDATE_BIT;
|
||||||
|
tformat.type = RD::TEXTURE_TYPE_CUBE;
|
||||||
|
|
||||||
|
Vector<uint8_t> pv;
|
||||||
|
pv.resize(16 * 4);
|
||||||
|
for (int i = 0; i < 16; i++) {
|
||||||
|
pv.set(i * 4 + 0, 255);
|
||||||
|
pv.set(i * 4 + 1, 255);
|
||||||
|
pv.set(i * 4 + 2, 255);
|
||||||
|
pv.set(i * 4 + 3, 255);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
Vector<Vector<uint8_t>> vpv;
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
vpv.push_back(pv);
|
||||||
|
}
|
||||||
|
default_rd_textures[DEFAULT_RD_TEXTURE_CUBEMAP_WHITE] = RD::get_singleton()->texture_create(tformat, RD::TextureView(), vpv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
{ //create default 3D
|
{ //create default 3D
|
||||||
|
|
||||||
RD::TextureFormat tformat;
|
RD::TextureFormat tformat;
|
||||||
|
|||||||
@@ -155,6 +155,7 @@ public:
|
|||||||
DEFAULT_RD_TEXTURE_MULTIMESH_BUFFER,
|
DEFAULT_RD_TEXTURE_MULTIMESH_BUFFER,
|
||||||
DEFAULT_RD_TEXTURE_CUBEMAP_BLACK,
|
DEFAULT_RD_TEXTURE_CUBEMAP_BLACK,
|
||||||
DEFAULT_RD_TEXTURE_CUBEMAP_ARRAY_BLACK,
|
DEFAULT_RD_TEXTURE_CUBEMAP_ARRAY_BLACK,
|
||||||
|
DEFAULT_RD_TEXTURE_CUBEMAP_WHITE,
|
||||||
DEFAULT_RD_TEXTURE_3D_WHITE,
|
DEFAULT_RD_TEXTURE_3D_WHITE,
|
||||||
DEFAULT_RD_TEXTURE_2D_ARRAY_WHITE,
|
DEFAULT_RD_TEXTURE_2D_ARRAY_WHITE,
|
||||||
DEFAULT_RD_TEXTURE_2D_UINT,
|
DEFAULT_RD_TEXTURE_2D_UINT,
|
||||||
|
|||||||
Reference in New Issue
Block a user