Lines Matching refs:outputs
179 /* TODO: Process outputs. */
206 * \brief Allocates the vertex shader outputs.
208 * \param[in] outputs The vertex shader output data.
209 * \return The total number of vertex outputs required.
211 static size_t alloc_vs_outputs(struct rogue_vertex_outputs *outputs)
215 for (size_t u = 0; u < outputs->num_output_vars; ++u) {
217 assert(outputs->base[u] == ~0);
219 outputs->base[u] = vs_outputs;
220 vs_outputs += outputs->components[u];
229 * \param[in] outputs The vertex shader output data.
232 static size_t count_vs_varyings(struct rogue_vertex_outputs *outputs)
237 for (size_t u = 1; u < outputs->num_output_vars; ++u)
238 varyings += outputs->components[u];
266 * \param[in] outputs The vertex output data.
270 static void reserve_vs_output(struct rogue_vertex_outputs *outputs,
276 assert(i < ARRAY_SIZE(outputs->base));
278 outputs->base[i] = ~0;
279 outputs->components[i] = components;
280 ++outputs->num_output_vars;
322 /* Process outputs. */
325 assert(num_outputs > 0 && "Invalid number of vertex shader outputs.");
330 /* Check that outputs are F32. */
339 reserve_vs_output(&vs_data->outputs, 0, components);
343 reserve_vs_output(&vs_data->outputs, i, components);
352 vs_data->num_vertex_outputs = alloc_vs_outputs(&vs_data->outputs);
356 vs_data->num_varyings = count_vs_varyings(&vs_data->outputs);
471 * Collects the inputs/outputs/memory required, and feeds that back to the
540 * \param[in] outputs The vertex output data.
545 size_t rogue_output_index_vs(struct rogue_vertex_outputs *outputs,
553 assert(outputs->base[0] == 0);
562 assert(i < outputs->num_output_vars);
563 assert(component < outputs->components[i]);
564 assert(outputs->base[i] != ~0);
566 return outputs->base[i] + component;