diff --git a/.pick_status.json b/.pick_status.json index 2726736b8bd..d87d10210f2 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -664,7 +664,7 @@ "description": "r300: fix reusing of color varying slots for generic ones", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "d4b8e8a48144f4b899d48c271558f0dc613632cb", "notes": null diff --git a/src/gallium/drivers/r300/r300_fs.c b/src/gallium/drivers/r300/r300_fs.c index 4c25492b634..5300c8bf047 100644 --- a/src/gallium/drivers/r300/r300_fs.c +++ b/src/gallium/drivers/r300/r300_fs.c @@ -65,11 +65,13 @@ void r300_shader_read_fs_inputs(struct tgsi_shader_info* info, case TGSI_SEMANTIC_TEXCOORD: assert(index < ATTR_TEXCOORD_COUNT); fs_inputs->texcoord[index] = i; + fs_inputs->num_texcoord++; break; case TGSI_SEMANTIC_GENERIC: assert(index < ATTR_GENERIC_COUNT); fs_inputs->generic[index] = i; + fs_inputs->num_generic++; break; case TGSI_SEMANTIC_FOG: diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c index 3adb031247f..2a2326b2397 100644 --- a/src/gallium/drivers/r300/r300_state_derived.c +++ b/src/gallium/drivers/r300/r300_state_derived.c @@ -541,6 +541,14 @@ static void r300_update_rs_block(struct r300_context *r300) } } + for (; i < ATTR_GENERIC_COUNT; i++) { + if (fs_inputs->generic[i] != ATTR_UNUSED) { + fprintf(stderr, "r300: ERROR: FS input generic %i unassigned, " + "not enough hardware slots (it's not a bug, do not " + "report it).\n", i); + } + } + gen_offset = 0; /* Re-use color varyings for texcoords if possible. * @@ -645,6 +653,14 @@ static void r300_update_rs_block(struct r300_context *r300) } } + for (; i < ATTR_TEXCOORD_COUNT; i++) { + if (fs_inputs->texcoord[i] != ATTR_UNUSED) { + fprintf(stderr, "r300: ERROR: FS input texcoord %i unassigned, " + "not enough hardware slots (it's not a bug, do not " + "report it).\n", i); + } + } + /* Rasterize pointcoord. */ if (fs_inputs->pcoord != ATTR_UNUSED && tex_count < 8) { @@ -666,14 +682,6 @@ static void r300_update_rs_block(struct r300_context *r300) tex_ptr += 2; } - for (; i < ATTR_GENERIC_COUNT; i++) { - if (fs_inputs->generic[i] != ATTR_UNUSED) { - fprintf(stderr, "r300: ERROR: FS input generic %i unassigned, " - "not enough hardware slots (it's not a bug, do not " - "report it).\n", i); - } - } - /* Rasterize fog coordinates. */ if (vs_outputs->fog != ATTR_UNUSED && tex_count < 8) { /* Set up the fog coordinates in VAP. */