Bug 33131

Summary: r600_asm.c:82: error: ‘V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT_FLOOR’ undeclared
Product: Mesa Reporter: Vinson Lee <vlee>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: CLOSED FIXED QA Contact:
Severity: blocker    
Priority: highest    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2011-01-14 11:01:18 UTC
mesa: 323ef3a1f07ba4333dadebab571ddcd49d95f45c (master)

$ scons
[...]
  Compiling src/gallium/drivers/r600/r600_asm.c ...
src/gallium/drivers/r600/r600_asm.c: In function ‘r600_bc_get_num_operands’:
src/gallium/drivers/r600/r600_asm.c:82: error: ‘V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT_FLOOR’ undeclared (first use in this function)
src/gallium/drivers/r600/r600_asm.c:82: error: (Each undeclared identifier is reported only once
src/gallium/drivers/r600/r600_asm.c:82: error: for each function it appears in.)
Comment 1 Alex Deucher 2011-01-14 13:24:02 UTC
Also, FWIW, none of the evergreen (and possibly some of the r7xx opcodes that are different from r6xx) are covered in the code in question.
Comment 2 Vinson Lee 2011-01-14 13:54:41 UTC
I disabled the V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT_FLOOR case to work around the current build failure.

Please revert this commit when appropriate.


commit 4c6d6dd8fc61239ac2008267f3c5cf76f4124d11
Author: Vinson Lee <vlee@vmware.com>
Date:   Fri Jan 14 13:47:37 2011 -0800

    r600g: Disable V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT_FLOOR case.
    
    The usage of macro V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT_FLOOR was
    introduced by commit 323ef3a1f07ba4333dadebab571ddcd49d95f45c but the
    macro is undefined. Disable this case to fix the build for now.

diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 2d0d277..3430fbb 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -79,7 +79,9 @@ static inline unsigned int r600_bc_get_num_operands(struct r600_bc_alu *alu)
        case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_CLAMPED:
        case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_IEEE:
        case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT:
+#if 0
        case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT_FLOOR:
+#endif
        case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SIN:
        case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_COS:
                return 1;
Comment 3 Alex Deucher 2011-01-14 14:53:01 UTC
fixed:
9dfc68314de575ba7f0f936d5d0c9efe117fd535
634dece281c6f7eb3bb210fdd386c2afe8f7e895
Comment 4 Christian König 2011-01-14 16:47:23 UTC
Sorry, that was my fault. I auto-generated the missing case switches with a regular expression and didn't noticed that this is an evergreen only instruction. I promise to at least check if it's compiling before pushing the next time.
Comment 5 Vinson Lee 2011-01-14 19:14:41 UTC
mesa: 4620de7eeae18f313436936088d235a99b7bc11d (master)

Verified fixed.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.