QUNIFORM_SPILL_SIZE_PER_THREAD,
};
+static inline uint32_t v3d_tmu_config_data_create(uint32_t unit, uint32_t value)
+{
+ return unit << 24 | value;
+}
+
+static inline uint32_t v3d_tmu_config_data_get_unit(uint32_t data)
+{
+ return data >> 24;
+}
+
+static inline uint32_t v3d_tmu_config_data_get_value(uint32_t data)
+{
+ return data & 0xffffff;
+}
+
struct v3d_varying_slot {
uint8_t slot_and_component;
};
fprintf(stderr, " (tex[%d].p1)", data);
break;
+ case QUNIFORM_TMU_CONFIG_P0:
+ fprintf(stderr, " (tex[%d].p0 | 0x%x)",
+ v3d_tmu_config_data_get_unit(data),
+ v3d_tmu_config_data_get_value(data));
+ break;
+
+ case QUNIFORM_TMU_CONFIG_P1:
+ fprintf(stderr, " (tex[%d].p1 | 0x%x)",
+ v3d_tmu_config_data_get_unit(data),
+ v3d_tmu_config_data_get_value(data));
+ break;
+
case QUNIFORM_TEXTURE_WIDTH:
fprintf(stderr, " (tex[%d].width)", data);
break;
struct v3d_texture_stateobj *texstate,
uint32_t data)
{
- /* Extract the texture unit from the top bits, and the compiler's
- * packed p0 from the bottom.
- */
- uint32_t unit = data >> 24;
- uint32_t p0 = data & 0x00ffffff;
-
+ int unit = v3d_tmu_config_data_get_unit(data);
struct pipe_sampler_view *psview = texstate->textures[unit];
struct v3d_sampler_view *sview = v3d_sampler_view(psview);
struct v3d_resource *rsc = v3d_resource(psview->texture);
- cl_aligned_reloc(&job->indirect, uniforms, sview->bo, p0);
+ cl_aligned_reloc(&job->indirect, uniforms, sview->bo,
+ v3d_tmu_config_data_get_value(data));
v3d_job_add_bo(job, rsc->bo);
}
struct v3d_texture_stateobj *texstate,
uint32_t data)
{
- /* Extract the texture unit from the top bits, and the compiler's
- * packed p1 from the bottom.
- */
- uint32_t unit = data >> 24;
- uint32_t p0 = data & 0x00ffffff;
-
+ uint32_t unit = v3d_tmu_config_data_get_unit(data);
struct pipe_sampler_state *psampler = texstate->samplers[unit];
struct v3d_sampler_state *sampler = v3d_sampler_state(psampler);
- cl_aligned_reloc(&job->indirect, uniforms, sampler->bo, p0);
+ cl_aligned_reloc(&job->indirect, uniforms, sampler->bo,
+ v3d_tmu_config_data_get_value(data));
}
struct v3d_cl_reloc