llvmpipe: replace uses of simple_list.h with list.h

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15418>
This commit is contained in:
Dylan Baker 2022-03-16 13:10:46 -07:00
parent 255a4d55c6
commit 928f02195e
12 changed files with 59 additions and 73 deletions

View file

@ -31,7 +31,6 @@
#include "util/u_cpu_detect.h"
#include "util/u_debug.h"
#include "util/u_memory.h"
#include "util/simple_list.h"
#include "util/os_time.h"
#include "lp_bld.h"
#include "lp_bld_debug.h"

View file

@ -36,7 +36,7 @@
#include "util/u_inlines.h"
#include "util/u_math.h"
#include "util/u_memory.h"
#include "util/simple_list.h"
#include "util/list.h"
#include "util/u_upload_mgr.h"
#include "lp_clear.h"
#include "lp_context.h"
@ -199,11 +199,11 @@ llvmpipe_create_context(struct pipe_screen *screen, void *priv,
memset(llvmpipe, 0, sizeof *llvmpipe);
make_empty_list(&llvmpipe->fs_variants_list);
list_inithead(&llvmpipe->fs_variants_list.list);
make_empty_list(&llvmpipe->setup_variants_list);
list_inithead(&llvmpipe->setup_variants_list.list);
make_empty_list(&llvmpipe->cs_variants_list);
list_inithead(&llvmpipe->cs_variants_list.list);
llvmpipe->pipe.screen = screen;
llvmpipe->pipe.priv = priv;

View file

@ -29,7 +29,6 @@
#include "util/u_math.h"
#include "util/u_memory.h"
#include "util/u_inlines.h"
#include "util/simple_list.h"
#include "util/format/u_format.h"
#include "lp_scene.h"
#include "lp_fence.h"

View file

@ -23,7 +23,6 @@
*
**************************************************************************/
#include "util/u_memory.h"
#include "util/simple_list.h"
#include "util/os_time.h"
#include "util/u_dump.h"
#include "util/u_string.h"
@ -515,7 +514,7 @@ llvmpipe_create_compute_state(struct pipe_context *pipe,
nir_tgsi_scan_shader(shader->base.ir.nir, &shader->info.base, false);
}
make_empty_list(&shader->variants);
list_inithead(&shader->variants.list);
nr_samplers = shader->info.base.file_max[TGSI_FILE_SAMPLER] + 1;
nr_sampler_views = shader->info.base.file_max[TGSI_FILE_SAMPLER_VIEW] + 1;
@ -558,11 +557,11 @@ llvmpipe_remove_cs_shader_variant(struct llvmpipe_context *lp,
gallivm_destroy(variant->gallivm);
/* remove from shader's list */
remove_from_list(&variant->list_item_local);
list_del(&variant->list_item_local.list);
variant->shader->variants_cached--;
/* remove from context's list */
remove_from_list(&variant->list_item_global);
list_del(&variant->list_item_global.list);
lp->nr_cs_variants--;
lp->nr_cs_instrs -= variant->nr_instrs;
@ -575,7 +574,7 @@ llvmpipe_delete_compute_state(struct pipe_context *pipe,
{
struct llvmpipe_context *llvmpipe = llvmpipe_context(pipe);
struct lp_compute_shader *shader = cs;
struct lp_cs_variant_list_item *li;
struct lp_cs_variant_list_item *li, *next;
if (llvmpipe->cs == cs)
llvmpipe->cs = NULL;
@ -584,11 +583,8 @@ llvmpipe_delete_compute_state(struct pipe_context *pipe,
FREE(shader->global_buffers);
/* Delete all the variants */
li = first_elem(&shader->variants);
while(!at_end(&shader->variants, li)) {
struct lp_cs_variant_list_item *next = next_elem(li);
LIST_FOR_EACH_ENTRY_SAFE(li, next, &shader->variants.list, list) {
llvmpipe_remove_cs_shader_variant(llvmpipe, li->base);
li = next;
}
if (shader->base.ir.nir)
ralloc_free(shader->base.ir.nir);
@ -843,20 +839,18 @@ llvmpipe_update_cs(struct llvmpipe_context *lp)
key = make_variant_key(lp, shader, store);
/* Search the variants for one which matches the key */
li = first_elem(&shader->variants);
while(!at_end(&shader->variants, li)) {
LIST_FOR_EACH_ENTRY(li, &shader->variants.list, list) {
if(memcmp(&li->base->key, key, shader->variant_key_size) == 0) {
variant = li->base;
break;
}
li = next_elem(li);
}
if (variant) {
/* Move this variant to the head of the list to implement LRU
* deletion of shader's when we have too many.
*/
move_to_head(&lp->cs_variants_list, &variant->list_item_global);
list_move_to(&variant->list_item_global.list, &lp->cs_variants_list.list);
}
else {
/* variant not found, create it now */
@ -894,10 +888,11 @@ llvmpipe_update_cs(struct llvmpipe_context *lp)
for (i = 0; i < variants_to_cull || lp->nr_cs_instrs >= LP_MAX_SHADER_INSTRUCTIONS; i++) {
struct lp_cs_variant_list_item *item;
if (is_empty_list(&lp->cs_variants_list)) {
if (list_is_empty(&lp->cs_variants_list.list)) {
break;
}
item = last_elem(&lp->cs_variants_list);
item = list_last_entry(&lp->cs_variants_list.list,
struct lp_cs_variant_list_item, list);
assert(item);
assert(item->base);
llvmpipe_remove_cs_shader_variant(lp, item->base);
@ -915,8 +910,8 @@ llvmpipe_update_cs(struct llvmpipe_context *lp)
/* Put the new variant into the list */
if (variant) {
insert_at_head(&shader->variants, &variant->list_item_local);
insert_at_head(&lp->cs_variants_list, &variant->list_item_global);
list_add(&variant->list_item_local.list, &shader->variants.list);
list_add(&variant->list_item_global.list, &lp->cs_variants_list.list);
lp->nr_cs_variants++;
lp->nr_cs_instrs += variant->nr_instrs;
shader->variants_cached++;

View file

@ -72,8 +72,8 @@ lp_cs_variant_key_images(const struct lp_compute_shader_variant_key *key)
struct lp_cs_variant_list_item
{
struct list_head list;
struct lp_compute_shader_variant *base;
struct lp_cs_variant_list_item *next, *prev;
};
struct lp_compute_shader_variant

View file

@ -65,7 +65,6 @@
#include "util/format/u_format.h"
#include "util/u_dump.h"
#include "util/u_string.h"
#include "util/simple_list.h"
#include "util/u_dual_blend.h"
#include "util/u_upload_mgr.h"
#include "util/os_time.h"
@ -3815,7 +3814,7 @@ llvmpipe_create_fs_state(struct pipe_context *pipe,
pipe_reference_init(&shader->reference, 1);
shader->no = fs_no++;
make_empty_list(&shader->variants);
list_inithead(&shader->variants.list);
shader->base.type = templ->type;
if (templ->type == PIPE_SHADER_IR_TGSI) {
@ -3945,11 +3944,11 @@ void llvmpipe_remove_shader_variant(struct llvmpipe_context *lp,
}
/* remove from shader's list */
remove_from_list(&variant->list_item_local);
list_del(&variant->list_item_local.list);
variant->shader->variants_cached--;
/* remove from context's list */
remove_from_list(&variant->list_item_global);
list_del(&variant->list_item_global.list);
lp->nr_fs_variants--;
lp->nr_fs_instrs -= variant->nr_instrs;
}
@ -3984,17 +3983,14 @@ llvmpipe_delete_fs_state(struct pipe_context *pipe, void *fs)
{
struct llvmpipe_context *llvmpipe = llvmpipe_context(pipe);
struct lp_fragment_shader *shader = fs;
struct lp_fs_variant_list_item *li;
struct lp_fs_variant_list_item *li, *next;
/* Delete all the variants */
li = first_elem(&shader->variants);
while(!at_end(&shader->variants, li)) {
struct lp_fs_variant_list_item *next = next_elem(li);
LIST_FOR_EACH_ENTRY_SAFE(li, next, &shader->variants.list, list) {
struct lp_fragment_shader_variant *variant;
variant = li->base;
llvmpipe_remove_shader_variant(llvmpipe, li->base);
lp_fs_variant_reference(llvmpipe, &variant, NULL);
li = next;
}
lp_fs_reference(llvmpipe, &shader, NULL);
@ -4386,7 +4382,7 @@ make_variant_key(struct llvmpipe_context *lp,
* Update fragment shader state. This is called just prior to drawing
* something when some fragment-related state has changed.
*/
void
void
llvmpipe_update_fs(struct llvmpipe_context *lp)
{
struct lp_fragment_shader *shader = lp->fs;
@ -4398,20 +4394,18 @@ llvmpipe_update_fs(struct llvmpipe_context *lp)
key = make_variant_key(lp, shader, store);
/* Search the variants for one which matches the key */
li = first_elem(&shader->variants);
while(!at_end(&shader->variants, li)) {
LIST_FOR_EACH_ENTRY(li, &shader->variants.list, list) {
if(memcmp(&li->base->key, key, shader->variant_key_size) == 0) {
variant = li->base;
break;
}
li = next_elem(li);
}
if (variant) {
/* Move this variant to the head of the list to implement LRU
* deletion of shader's when we have too many.
*/
move_to_head(&lp->fs_variants_list, &variant->list_item_global);
list_move_to(&variant->list_item_global.list, &lp->fs_variants_list.list);
}
else {
/* variant not found, create it now */
@ -4449,10 +4443,11 @@ llvmpipe_update_fs(struct llvmpipe_context *lp)
for (i = 0; i < variants_to_cull || lp->nr_fs_instrs >= LP_MAX_SHADER_INSTRUCTIONS; i++) {
struct lp_fs_variant_list_item *item;
if (is_empty_list(&lp->fs_variants_list)) {
if (list_is_empty(&lp->fs_variants_list.list)) {
break;
}
item = last_elem(&lp->fs_variants_list);
item = list_last_entry(&lp->fs_variants_list.list,
struct lp_fs_variant_list_item, list);
assert(item);
assert(item->base);
llvmpipe_remove_shader_variant(lp, item->base);
@ -4473,8 +4468,8 @@ llvmpipe_update_fs(struct llvmpipe_context *lp)
/* Put the new variant into the list */
if (variant) {
insert_at_head(&shader->variants, &variant->list_item_local);
insert_at_head(&lp->fs_variants_list, &variant->list_item_global);
list_add(&variant->list_item_local.list, &shader->variants.list);
list_add(&variant->list_item_global.list, &lp->fs_variants_list.list);
lp->nr_fs_variants++;
lp->nr_fs_instrs += variant->nr_instrs;
shader->variants_cached++;

View file

@ -30,6 +30,7 @@
#define LP_STATE_FS_H_
#include "util/list.h"
#include "pipe/p_compiler.h"
#include "pipe/p_state.h"
#include "tgsi/tgsi_scan.h" /* for tgsi_shader_info */
@ -151,8 +152,8 @@ lp_fs_variant_key_images(struct lp_fragment_shader_variant_key *key)
/** doubly-linked list item */
struct lp_fs_variant_list_item
{
struct list_head list;
struct lp_fragment_shader_variant *base;
struct lp_fs_variant_list_item *next, *prev;
};

View file

@ -26,7 +26,6 @@
**************************************************************************/
#include <limits.h>
#include "util/simple_list.h"
#include "pipe/p_defines.h"
#include "util/u_inlines.h"

View file

@ -28,7 +28,6 @@
#include "util/u_math.h"
#include "util/u_memory.h"
#include "util/simple_list.h"
#include "util/os_time.h"
#include "gallivm/lp_bld_arit.h"
#include "gallivm/lp_bld_bitarit.h"
@ -833,7 +832,7 @@ remove_setup_variant(struct llvmpipe_context *lp,
gallivm_destroy(variant->gallivm);
}
remove_from_list(&variant->list_item_global);
list_del(&variant->list_item_global.list);
lp->nr_setup_variants--;
FREE(variant);
}
@ -858,10 +857,11 @@ cull_setup_variants(struct llvmpipe_context *lp)
for (i = 0; i < LP_MAX_SETUP_VARIANTS / 4; i++) {
struct lp_setup_variant_list_item *item;
if (is_empty_list(&lp->setup_variants_list)) {
if (list_is_empty(&lp->setup_variants_list.list)) {
break;
}
item = last_elem(&lp->setup_variants_list);
item = list_last_entry(&lp->setup_variants_list.list,
struct lp_setup_variant_list_item, list);
assert(item);
assert(item->base);
remove_setup_variant(lp, item->base);
@ -874,7 +874,7 @@ cull_setup_variants(struct llvmpipe_context *lp)
* prior to drawing something when some fragment-related state has
* changed.
*/
void
void
llvmpipe_update_setup(struct llvmpipe_context *lp)
{
struct lp_setup_variant_key *key = &lp->setup_variant.key;
@ -883,7 +883,7 @@ llvmpipe_update_setup(struct llvmpipe_context *lp)
lp_make_setup_variant_key(lp, key);
foreach(li, &lp->setup_variants_list) {
LIST_FOR_EACH_ENTRY(li, &lp->setup_variants_list.list, list) {
if(li->base->key.size == key->size &&
memcmp(&li->base->key, key, key->size) == 0) {
variant = li->base;
@ -892,7 +892,7 @@ llvmpipe_update_setup(struct llvmpipe_context *lp)
}
if (variant) {
move_to_head(&lp->setup_variants_list, &variant->list_item_global);
list_move_to(&variant->list_item_global.list, &lp->setup_variants_list.list);
}
else {
if (lp->nr_setup_variants >= LP_MAX_SETUP_VARIANTS) {
@ -901,7 +901,7 @@ llvmpipe_update_setup(struct llvmpipe_context *lp)
variant = generate_setup_variant(key, lp);
if (variant) {
insert_at_head(&lp->setup_variants_list, &variant->list_item_global);
list_add(&variant->list_item_global.list, &lp->setup_variants_list.list);
lp->nr_setup_variants++;
}
}
@ -912,12 +912,9 @@ llvmpipe_update_setup(struct llvmpipe_context *lp)
void
lp_delete_setup_variants(struct llvmpipe_context *lp)
{
struct lp_setup_variant_list_item *li;
li = first_elem(&lp->setup_variants_list);
while(!at_end(&lp->setup_variants_list, li)) {
struct lp_setup_variant_list_item *next = next_elem(li);
struct lp_setup_variant_list_item *li, *next;
LIST_FOR_EACH_ENTRY_SAFE(li, next, &lp->setup_variants_list.list, list) {
remove_setup_variant(lp, li->base);
li = next;
}
}

View file

@ -9,8 +9,8 @@ struct lp_setup_variant;
struct lp_setup_variant_list_item
{
struct list_head list;
struct lp_setup_variant *base;
struct lp_setup_variant_list_item *next, *prev;
};

View file

@ -40,7 +40,6 @@
#include "util/format/u_format.h"
#include "util/u_math.h"
#include "util/u_memory.h"
#include "util/simple_list.h"
#include "util/u_transfer.h"
#include "lp_context.h"
@ -293,7 +292,7 @@ llvmpipe_resource_create_all(struct pipe_screen *_screen,
#ifdef DEBUG
mtx_lock(&resource_list_mutex);
insert_at_tail(&resource_list, lpr);
list_addtail(&lpr->list, &resource_list.list);
mtx_unlock(&resource_list_mutex);
#endif
@ -422,7 +421,7 @@ llvmpipe_resource_from_memobj(struct pipe_screen *pscreen,
#ifdef DEBUG
mtx_lock(&resource_list_mutex);
insert_at_tail(&resource_list, lpr);
list_addtail(&lpr->list, &resource_list.list);
mtx_unlock(&resource_list_mutex);
#endif
@ -461,8 +460,8 @@ llvmpipe_resource_destroy(struct pipe_screen *pscreen,
}
#ifdef DEBUG
mtx_lock(&resource_list_mutex);
if (lpr->next)
remove_from_list(lpr);
if (!list_is_empty(&lpr->list))
list_del(&lpr->list);
mtx_unlock(&resource_list_mutex);
#endif
@ -601,7 +600,7 @@ llvmpipe_resource_from_handle(struct pipe_screen *_screen,
#ifdef DEBUG
mtx_lock(&resource_list_mutex);
insert_at_tail(&resource_list, lpr);
list_addtail(&lpr->list, &resource_list.list);
mtx_unlock(&resource_list_mutex);
#endif
@ -1029,7 +1028,7 @@ llvmpipe_print_resources(void)
debug_printf("LLVMPIPE: current resources:\n");
mtx_lock(&resource_list_mutex);
foreach(lpr, &resource_list) {
LIST_FOR_EACH_ENTRY(lpr, &resource_list.list, list) {
unsigned size = llvmpipe_resource_size(&lpr->base);
debug_printf("resource %u at %p, size %ux%ux%u: %u bytes, refcount %u\n",
lpr->id, (void *) lpr,
@ -1122,7 +1121,7 @@ llvmpipe_init_screen_resource_funcs(struct pipe_screen *screen)
static boolean first_call = TRUE;
if (first_call) {
memset(&resource_list, 0, sizeof(resource_list));
make_empty_list(&resource_list);
list_inithead(&resource_list.list);
first_call = FALSE;
}
}

View file

@ -1,8 +1,8 @@
/**************************************************************************
*
*
* Copyright 2007 VMware, Inc.
* All Rights Reserved.
*
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
@ -10,11 +10,11 @@
* distribute, sub license, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
@ -22,7 +22,7 @@
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
*
**************************************************************************/
#ifndef LP_TEXTURE_H
@ -32,6 +32,9 @@
#include "pipe/p_state.h"
#include "util/u_debug.h"
#include "lp_limits.h"
#ifdef DEBUG
#include "util/list.h"
#endif
enum lp_texture_usage
@ -101,8 +104,7 @@ struct llvmpipe_resource
bool backable;
bool imported_memory;
#ifdef DEBUG
/** for linked list */
struct llvmpipe_resource *prev, *next;
struct list_head list;
#endif
};